在C#中,比较以下THREE替代方案时性能是否会有差异?会在子块内声明变量提高性能吗?
ONE
void ONE(int x) {
if (x == 10)
{
int y = 20;
int z = 30;
// do other stuff
} else {
// do other stuff
}
}
二
void TWO(int x) {
int y;
int z;
if (x == 10)
{
y = 20;
z = 30;
// do other stuff
} else {
// do other stuff
}
}
三
void THREE(int x) {
int y = 20;
int z = 30;
if (x == 10)
{
// do other stuff
} else {
// do other stuff
}
}
你正在担心被称为“微观优化”的问题:你有没有基准确定你确实存在性能问题? – 2010-08-04 03:18:59
@Mitch:我在克雷格的帖子中看不到任何地方抱怨他的代码性能下降。他有一个完全有效和聪明的问题要问,所以他做到了。这就像我们不能发布任何涉及性能的@SO。 – 2010-08-04 03:41:21
我甚至不会将这种微型优化称为纳米优化。任何看过探查器输出的人都知道,担心存储变量或调用函数所花的时间可以忽略不计。 – 2010-08-04 03:46:06