Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
这个问题和MSDN似乎暗示 /O2 会更快,但是如果您查看 Microsoft 自己的SafeInt类,您会注意到它说:
1)编译优化代码 -/Ox最好,/O2也表现良好。有趣/O1 的是,(优化大小)也不起作用。
/Ox
/O2
/O1
如果差异真的/GF /Gy像上面的问题所说的那样,那么就我想像的那样/GF,(字符串池)和/Gy(省略帧指针)不会真正伤害到你。
/GF /Gy
/GF
/Gy
有什么我想念的吗?/Ox一般更快吗?为什么或者为什么不?
/Gy不是帧指针遗漏,即/Oy, 至少在/Ox, /O1,下启用/O2。
/Oy
/Gy是 COMDAT 生成(函数级链接),它倾向于减少工作集的大小,但不应该真正影响代码质量。在模板和内联代码(例如 SafeInt)上,可能根本没有明显的区别。
您链接的 MSDN 页面也说使用/O2而不是/Ox,所以我认为“/Ox一般更快”的想法没有任何优点。