2013-04-25 22 views
-1

if()或變量初始化之間需要更多時間的指令是什麼?檢查語句或賦值變量的性能?

首先檢查給定的變量是否具有非零值,並且只有在非零值時才設置它會更有效嗎?

例如:一個布爾!

if (boolean) 
    boolean = false; 

或直接:boolean = false;

+0

很明顯,X + Y> X除非Y是零(或負)? – EJP 2013-04-25 22:56:05

回答

1

最有可能的是更快的不檢查。它取決於被設置的對象的類型(在這種情況下,是一個布爾值,顯然是「易於設置」)。只有具有「簡單比較」和「複雜設置」的特殊對象才能從首先檢查中受益。

如果真的很容易檢查並且很難改變,那麼「set」函數應該檢查它自己。

由於寫入內存會強制刷新其他處理器的緩存,這會花費很多時間,因此處理器之間會存在很多爭用情況下的共享內存異常。

+0

感謝您的答案! – VincentLamoute 2013-04-25 14:59:38