在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