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

By submitting your information, you agree that devx.com may send you DevX offers via email, phone and text message, as well as email offers about other products and services that DevX believes may be of interest to you. DevX will process your information in accordance with the Quinstreet Privacy Policy.


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

WEBINAR:

On-Demand

Application Security Testing: An Integral Part of DevOps


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