【发布时间】:2017-08-22 16:45:23
【问题描述】:
什么会更快:添加带循环或不带循环 (C#)? 我是说
int a=0;
for (int i=1;i<4;i++)
a+=2*i;
或
int a=0;
a+=2*1;
a+=2*2;
a+=2*3;
【问题讨论】:
-
没什么区别,重要的是可读性和可维护性。所以使用循环
-
在现代 CPU 上您不会看到任何区别,因为您的循环分支是免费的。即使它们不是,您也必须如此频繁地循环才能看到差异,串行执行不是一种选择。
-
如果您想要速度,请使用公式,而不是蛮力。
-
两者都是可悲的 cf。明显的封闭形式解决方案。尽管第二种方式更明确地在编译时可评估——也许一个好的 C 或 C++ 编译器将有更好的机会优化后者。我对 C# 编译器的功能一无所知。
-
必填performance rant。自己赛马
标签: c# loops optimization