Visual C ++编译器优化标志:/ O2和/ Ot之间的差异

时间:2011-05-15 08:39:45

标签: c++ visual-c++ compiler-optimization compiler-options

/Ot标志(“赞成快速代码”)和/O2标志(“最大化速度”)之间有什么区别?

(与/Os/O1同上。)

3 个答案:

答案 0 :(得分:6)

/ 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的链接。

马丁

答案 1 :(得分:2)

请参阅MSDN上的/O1, /O2 (Minimize Size, Maximize Speed)文章。

它声明/O2相当于:

/Og /Oi /Ot /Oy /Ob2 /Gs /GF /Gy

所以/O2启用/Ot所做的所有事情,以及更多。{1}}。 /O1/Os相同,但这次是尺寸。

答案 2 :(得分:0)

没有区别。 /Ot/O2优化的一部分。

http://msdn.microsoft.com/en-us/library/f9534wye.aspx