/Gy
不是省略帧指针,那个是 /Oy
,它在至少启用了 /Ox
、/O1
、/O2
之一。
/Gy
是 COMDAT 生成(函数级链接),它倾向于减少工作集大小,但不应该真正影响代码质量。对于像 SafeInt 这样的模板和内联代码,可能根本没有可辨别的差异。
你链接的 MSDN 页面还说要使用 /O2
而不是 /Ox
,所以我认为 "/Ox
通常更快" 的想法没有任何价值。
SafeInt3.hpp
并自行查看;它们明确表示/Ox
更快。我很困惑为什么会这样,或者是否普遍存在(如果不是,为什么)。 - user541686
/Ox
是更高级别的优化,因为文档称其为“完全优化”。 - Cody Gray/Ox
和/O2
之间的任何差异,只是选择鼓励使用/Ox
,因为它听起来更好。他们确实说/O2
“也表现良好”。 - Cody Gray/Ox
确实 更好...但如果你真的认为他们没有进行比较,那就算了。 - user541686