Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: VB4,VB5,VB6,VBS
Expertise: beginner
Jun 10, 2000

Simple variables are always faster than array elements

Reading and writing an item of an array is always slower than accessing a simple variable. Therefore, if you need to repeatedly use the same array item in a loop, you should assign it to a temporary variable and use that variable instead. I've included an example of this technique that scans an Integer arrays to see if there are any duplicate values:

Function AnyDuplicates(intArray() As Integer) As Boolean
    ' returns True if the array holds duplicate values
    Dim i As Long, j As Long, 
    Dim lastItem As Long
    Dim value As Integer

    ' evaluate UBound() just once
    lastItem = UBound(intArray)
    For i = LBound(intArray) To lastItem
        ' storing intArray(i) into a non-array variable
        ' saves an indexing operation within the inner loop
        value = intArray(i)
        For j = i + 1 To lastItem
            If value = intArray(j) Then
                AnyDuplicates = True
                Exit Function
            End If
        Next
    Next
    ' no duplicates were found
    AnyDuplicates = False
End Function

The routine is based upon two nested loops and saves CPU time by caching the value of intArray(i) into a regular, non-array variable. This simple trick makes the routine up to 80 percent faster.
Francesco Balena
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date