3

这个问题MSDN似乎暗示 /O2 会更快,但是如果您查看 Microsoft 自己的SafeInt类,您会注意到它说:

1)编译优化代码 -/Ox最好,/O2也表现良好。有趣/O1 的是,(优化大小)也不起作用。

如果差异真的/GF /Gy像上面的问题所说的那样,那么就我想像的那样/GF,(字符串池)和/Gy(省略帧指针)不会真正伤害到你。

有什么我想念的吗?/Ox一般更快吗?为什么或者为什么不?

4

1 回答 1

1

/Gy不是帧指针遗漏,即/Oy, 至少在/Ox, /O1,下启用/O2

/Gy是 COMDAT 生成(函数级链接),它倾向于减少工作集的大小,但不应该真正影响代码质量。在模板和内联代码(例如 SafeInt)上,可能根本没有明显的区别。

您链接的 MSDN 页面也说使用/O2而不是/Ox,所以我认为“/Ox一般更快”的想法没有任何优点。

于 2012-08-11T05:50:57.047 回答