我今天在C#和Java中讀到了post about performance improvement。局部變量或類字段?
我仍然停留在這一個:
19.不要過度使用實例變量
性能可以使用局部變量來改善。實例1中的代碼將執行比示例代碼中的2
例1速度快:
public void loop() {
int j = 0;
for (int i = 0; i<250000;i++){
j = j + 1;
}
}
例2:
int i;
public void loop() {
int j = 0;
for (i = 0; i<250000;i++){
j = j + 1;
}
}
事實上,我不明白爲什麼它應該更快地實例化一些內存,並在每次調用loop
函數完成時釋放它,以便我可以簡單訪問字段。
這是純粹的好奇心,我沒有試圖把變量'i'放在類的範圍內:p 這是真的嗎?使用局部變量更快嗎?或者只是在某種情況下?
我認爲,性能差異可以忽略不計,您應該更加關心開發人員在理解代碼方面的表現。如果你有一個應該是局部變量的字段或屬性,我會在理解它的目的時發生衝突。如果你想知道性能差異,爲什麼不對它進行基準測試(或讀取兩者都生成的IL)? – Matthew
從堆棧訪問變量可能比通過堆引用訪問變量要快。 –
那麼多不好的建議,在那篇文章中,我不知道從哪裏開始 –