-1
在if()
或變量初始化之間需要更多時間的指令是什麼?檢查語句或賦值變量的性能?
首先檢查給定的變量是否具有非零值,並且只有在非零值時才設置它會更有效嗎?
例如:一個布爾!
if (boolean)
boolean = false;
或直接:boolean = false;
在if()
或變量初始化之間需要更多時間的指令是什麼?檢查語句或賦值變量的性能?
首先檢查給定的變量是否具有非零值,並且只有在非零值時才設置它會更有效嗎?
例如:一個布爾!
if (boolean)
boolean = false;
或直接:boolean = false;
最有可能的是更快的不檢查。它取決於被設置的對象的類型(在這種情況下,是一個布爾值,顯然是「易於設置」)。只有具有「簡單比較」和「複雜設置」的特殊對象才能從首先檢查中受益。
如果真的很容易檢查並且很難改變,那麼「set」函數應該檢查它自己。
由於寫入內存會強制刷新其他處理器的緩存,這會花費很多時間,因此處理器之間會存在很多爭用情況下的共享內存異常。
感謝您的答案! – VincentLamoute 2013-04-25 14:59:38
很明顯,X + Y> X除非Y是零(或負)? – EJP 2013-04-25 22:56:05