我想知道什么时候(如果有的话)我应该将 if 语句从实质性循环中拉出以帮助优化速度?
for(i=0;i<File.NumBits;i++)
if(File.Format.Equals(FileFormats.A))
ProcessFormatA(File[i]);
else
ProcessFormatB(File[i]);
进入
if(File.Format.Equals(FileFormats.A))
for(i=0;i<File.NumBits;i++)
ProcessFormatA(File[i]);
else
for(i=0;i<File.NumBits;i++)
ProcessFormatB(File[i]);
我不确定编译器是否会为我进行这种类型的优化,或者这是否被认为是良好的编码实践,因为我认为如果循环更复杂,它会使代码更难以阅读/维护。
感谢您的任何意见/建议。
最佳答案
当您完成代码时,分析器会告诉您 for 循环是一个瓶颈。很快。
关于c++ - 寻找有关何时使用 if 语句展开循环的意见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5931158/