我有一些编码资源问题: Q1:A:
for(int i = 0; i< 15; i ++){
FUNA(ⅰ);FunB(ⅰ);
}要么
B:
FUNA(ⅰ);
}
for(int i = 0; i< 15; …
的 使用分析器。 强>
对于第二个问题,C#编译器将优化编译时常量,如 10*2-15+15 。
10*2-15+15
你的第二个 B 尽管编译器可能优化了代码,但示例是更好的代码 A 你的例子。
B
A
除了表现,第二 A 例子就是糟糕的编码实践。不必要的重复常量(更有可能导致用户错误,尤其是稍后更改此代码时)。
也就是说,一个好的经验法则是不依赖于编译器优化。尝试使代码可读并实际使用 是 你应该字面意思 限定 他们是 const :
const
const int WHATEVER = 10 * 2 - 15 + 15; int result = WHATEVER / X; FunA(result); FunA(result); FunA(result);
最后,这里有必要提一下,分析几乎总是比滚动自己的基准测试更准确(我认为写错了多次)。 Visual Studio 2017有一个内置的分析器,或者您可以使用其他各种分析器。
如果对性能有疑问,请不要猜测。获取实际指标。