2013-06-12 58 views
-1

的問題是:這是更快地做到這一點:在循環中比較或重新分配布爾值是否更快?

if (!self.isStarted) 
{ 
    self.started = YES; 
} 

或者乾脆:

self.started = YES; 

,並在每個傳遞迴路重新分配的值。

+4

1)這取決於2)沒關係 – SLaks

+1

您是否嘗試過對兩種不同方法進行基準測試?你正在使用哪種語言? :) – summea

+0

你可以exmplain –

回答

1

條件較慢,並不像簡單地將該變量設置爲YES那樣清晰。你的代碼的重點在於,當你離開那段代碼之後,你想確保變量是YES,並且由於操作在事物的宏觀方案中如此便宜,所以爲了便於閱讀,並且在事先沒有檢查的情況下將其設置爲YES 。

1

雖然編譯器可能會優化這一點,但是self.started = YES;會更快,因爲它節省了必須從內存中檢索值並進行比較的開銷。此答案僅適用於低級語言;更高級的語言將取決於實現。

+0

這是在objective-c中,我想知道是否準備記憶比寫作要快 –