Visual c++ 在VC&x2B+;什么是#pragma等效于/O2编译器选项(优化速度)
根据, /O2(最大速度) 相当于 /Og/Oi/Ot/Oy/Ob2/Gs/GF/Gy 再根据下面的布拉格语 #pragma optimize(“[优化列表]”,{on | off}) 在其“优化列表”中使用与/O编译器选项相同的字母。可用的pragma字母有:Visual c++ 在VC&x2B+;什么是#pragma等效于/O2编译器选项(优化速度),visual-c++,compiler-optimization,Visual C++,Compiler Optimization,根据, /O2(最大速度) 相当于 /Og/Oi/Ot/Oy/Ob2/Gs/GF/Gy 再根据下面的布拉格语 #pragma optimize(“[优化列表]”,{on | off}) 在其“优化列表”中使用与/O编译器选项相同的字母。可用的pragma字母有: g-启用全局优化 p-提高浮点一致性 s或t-指定机器代码的短或快序列 y-在程序堆栈上生成帧指针 我应该使用哪些与/O2具有相同含义?对于Visual Studio 2017: /O1和/O2编译器选项是设置多个 一次完成特定的优
- g-启用全局优化李>
- p-提高浮点一致性李>
- s或t-指定机器代码的短或快序列李>
- y-在程序堆栈上生成帧指针
Option Equivalent to
/O1 (Minimize Size) /Og /Os /Oy /Ob2 /GF /Gy
/O2 (Maximize Speed) /Og /Oi /Ot /Oy /Ob2 /GF /Gy
:
/Og
启用全局优化/Oi
为适当的函数调用生成内部函数/Ot
(默认设置)告诉编译器偏向于速度优化而不是大小优化/Oy
禁止在调用堆栈上创建帧指针,以便更快地调用函数/Ob2
扩展标记为inline
或\uu inline
的函数以及编译器选择的任何其他函数/GF
(消除重复字符串)/Gy
(启用功能级链接)/G
选项不是严格的优化,因此留给我们的是/Og
和/Ot
,加上#pragma intrinsic
(对于列表中的项目2)、#pragma auto_inline
(对于列表中的项目5)以及可能的#pragma inline_depth
。看
另请参见指示/Ox
选项与/O2
选项类似的选项,只是它不打开/GF
或/Gy
。也看到
有一个编译器选项列表,其中包含关于它们含义的链接。我认为没有直接的等价物 #pragma optimize(“gty”,关闭) 对于一个文件,应该取消/O2在项目级别的大部分影响,但是 #pragma optimize(“gty”,打开) 只是说“使用编译器开关”,所以需要/O2或/Og/Ot/Oy 我找不到/G部件的pragmas,它们做了“类似”的优化工作