訪問全局變量或對象變量是否更快?全局變量和對象變量之間的速度差異
在C++中,我
::foo
和
this->foo
之間參照差在x86彙編,這基本上轉化爲
mov eax, offset foo
VS
mov eax, dword ptr[edx+foo]
這兩種情況下的所有數據都預計在緩存中。 (我知道區別是什麼會很小,而且通常應該選擇哪個代碼更簡單;但在這種情況下,實際上沒有其他區別,並且有問題的代碼將被稱爲大概5億個時間限制在一段時間內,所以我還不如去更快的那個)
怎麼樣測試和計時兩個變種? – sharptooth 2010-09-23 06:26:34
如果重要,這是值得的時間。也就是說,成員變量可能會更頻繁地與其他數據緩存在一起。 – GManNickG 2010-09-23 06:29:30
「限時」?這是什麼時間限制?每秒五億次訪問可能意味着性能方面的重要性,但每小時五億次將使其完全無關緊要。 – jalf 2010-09-23 08:50:29