性能方面,多次直接訪問數組元素還是將其值賦給變量並使用該變量會更好?假設我將在下面的代碼中多次引用該值。直接訪問數組元素與將其分配給變量
這個問題背後的原因是,訪問一個數組元素大概會在每次完成時涉及一些計算成本,而不需要額外的空間。另一方面,將該值存儲在變量中會消除這種訪問成本,但會佔用額外的空間。
// use a variable to store the value
Temp = ArrayOfValues(0)
If Temp > 100 Or Temp < 50 Then
Dim Blah = Temp
...
// reference the array element 'directly'
If ArrayOfValues(0) > 100 Or ArrayOfValues(0) < 50 Then
Dim Blah = ArrayOfValues(0)
...
我知道這是一個簡單的例子,但假設我們在談論在實際使用中在什麼點(其中值將被多次引用)規模較大的空間和計算時間價值之間的權衡考慮(如果有的話)?
優化編譯器將對HLL進行徹底的嘗試。如果您使用匯編或關閉優化,寄存器比緩存更快,所以應儘可能將常用值加載到寄存器中。總的來說,我認爲註冊壓力和內存層次之間的臨界點可能是經驗問題。 – Patrick87