Lea*_*ess 2 c++ optimization loops as-if
for(int i = 0; i < my_function(MY_CONSTANT); ++i){
//code using i
}
Run Code Online (Sandbox Code Playgroud)
在这个例子中,将my_function(MY_CONSTANT)在每次迭代时进行评估,还是会自动存储?这取决于使用的优化标志吗?
Che*_*Alf 10
它必须像每次调用函数一样工作.
但是,如果编译器每次都能证明函数结果是相同的,那么它可以在"as"规则下进行优化.
例如,这通常发生在调用.end()标准容器时.
一般建议:如果对是否微观优化一段代码有疑问,
换句话说,根据代码的清晰程度决定是否使用变量,而不是基于想象的性能.
| 归档时间: |
|
| 查看次数: |
244 次 |
| 最近记录: |