例如,假设以下代码:
foreach(Car car in Cars)
{
if(car.Damaged)
LogWarning();
else
LogInfo();
}
做得更好:
foreach(Car car in Cars)
{
if(car.Damaged)
{
LogWarning();
continue;
}
LogInfo();
}
答案 0 :(得分:3)
扁平化条件是否有性能优势?
也许,但几乎肯定无关紧要。相反,你最终得到的代码是更难理解和维护的代码,以换取几乎肯定无关的性能差异。
如果您真的想知道,请双向编写代码并正确分析。但同样,性能差异不太可能有意义,最终你会得到更难阅读的代码。为什么呢?
图书出版商可以通过以一点字体发布没有页边距来轻松制作书籍,从而更轻松,更轻松地承担环境负担。他们为什么不呢?
代码不仅适用于编译器。它也适用于人类,人类必须能够阅读并维护它。
答案 1 :(得分:0)
有一个好的编译器。它会产生同样的东西。所以你想知道编译器是否好。最好的方法是查看已编译的代码,并在生成两个不同的内容时启动性能分析。