訪問簡單變量總是快于數(shù)組元素值

字號:

讀寫數(shù)組中的元素速度通常都慢于訪問一個簡單變量,因此,如果在一個循環(huán)中要重復(fù)使用同一數(shù)組元素值,就應(yīng)該分配數(shù)組元素值到臨時變量中并使用這個變量。下面舉一個例子,檢測整數(shù)數(shù)組中是否存在重復(fù)項:
    Function AnyDuplicates(intArray() As Integer) As Boolean
    '如果數(shù)組包含重復(fù)項,返回True
    Dim i As Long, j As Long,
    Dim lastItem As Long
    Dim value As Integer
    '只計算機(jī)UBound()一次
    lastItem = UBound(intArray)
    For i = LBound(intArray) To lastItem
    ' 保存intArray(i)到非數(shù)組變量中
    value = intArray(i)
    For j = i + 1 To lastItem
    If value = intArray(j) Then
    AnyDuplicates = True
    Exit Function
    End If
    Next
    Next
    '沒有發(fā)現(xiàn)重復(fù)項
    AnyDuplicates = False
    End Function
    上述程序有2層循環(huán),通過緩存intArray(i)的數(shù)值到一個普通的、非數(shù)組變量中,節(jié)省了CPU運(yùn)行時間。經(jīng)測試,這將提高80%的速度。