【发布时间】:2011-08-25 19:53:56
【问题描述】:
/Ot 标志(“支持快速代码”)和/O2 标志(“最大化速度”)有什么区别?
(/Os 和 /O1 同上。)
【问题讨论】:
标签: c++ visual-c++ compiler-optimization compiler-options
/Ot 标志(“支持快速代码”)和/O2 标志(“最大化速度”)有什么区别?
(/Os 和 /O1 同上。)
【问题讨论】:
标签: c++ visual-c++ compiler-optimization compiler-options
/O1 和 /O2 将多个选项捆绑在一起,以实现更大的目标。因此 /O1 做出了许多有利于大小的代码生成选择; /O2 做同样的事情,并且偏爱速度。
/O1 包括 /Os 以及其他选项。 /O2 包括 /Ot 以及其他选项。 /O1 和 /O2 都启用了一些优化。而且,根据您程序的分页行为,如果分页代码在指令执行成本上支配您的性能,/O1(大小)可能会比 /O2 产生更快的速度。
这里是 /O1 和 /O2 在 VC++ 2010 中影响的简短总结
http://msdn.microsoft.com/en-us/library/8f8h5cxt.aspx
并包含其他版本 VC 的链接。
马丁
【讨论】:
/O1 与/Ot 放在一起会发生什么?是偏向于大小还是速度?
请参阅 MSDN 上的 /O1, /O2 (Minimize Size, Maximize Speed) 文章。
它声明/O2 相当于:
/Og /Oi /Ot /Oy /Ob2 /Gs /GF /Gy
所以/O2 启用了/Ot 所做的所有事情,以及更多。 /O1 与 /Os 相同,但这次是大小。
【讨论】:
没有区别。 /Ot 是 /O2 优化的一部分。
【讨论】: