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

WEBINAR:

On-Demand

Full Text Search: The Key to Better Natural Language Queries for NoSQL in Node.js


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