Æðe*_*tan 4 c c++ java optimization for-loop
在Java,C#或C++中,假设我们有一个非常常见的情况,我们需要迭代很多次并执行函数doX,但是只有一次迭代我们应该执行函数doY.
int index = 123456;
for(int i = 0; i < 1000000; i++)
{
if(i == index) doY();
else doX();
}
Run Code Online (Sandbox Code Playgroud)
在我看到真正的性能问题的情况下,我通常在2中打破循环,但这可能非常痛苦,特别是如果循环的主体很大.编译后的代码是否真的检查每次迭代的条件,还是可以由编译器优化?此外,如果index在编译时不是常量,那么可以进行这样的优化吗?
| 归档时间: |
|
| 查看次数: |
421 次 |
| 最近记录: |