扁平化条件是否有性能优势?

时间:2011-11-04 15:45:51

标签: c# if-statement

例如,假设以下代码:

foreach(Car car in Cars)
{
    if(car.Damaged)
       LogWarning();
    else
       LogInfo();
}

做得更好:

foreach(Car car in Cars)
{
    if(car.Damaged)
    {
       LogWarning();
       continue;
    }

       LogInfo();
}

2 个答案:

答案 0 :(得分:3)

  

扁平化条件是否有性能优势?

也许,但几乎肯定无关紧要。相反,你最终得到的代码是更难理解和维护的代码,以换取几乎肯定无关的性能差异。

如果您真的想知道,请双向编写代码并正确分析。但同样,性能差异不太可能有意义,最终你会得到更难阅读的代码。为什么呢?

图书出版商可以通过以一点字体发布没有页边距来轻松制作书籍,从而更轻松,更轻松地承担环境负担。他们为什么不呢?

代码不仅适用于编译器。它也适用于人类,人类必须能够阅读并维护它。

答案 1 :(得分:0)

有一个好的编译器。它会产生同样的东西。所以你想知道编译器是否好。最好的方法是查看已编译的代码,并在生成两个不同的内容时启动性能分析。