Re: Arrays

 BBS: Inland Empire Archive
Date: 06-10-92 (00:00)             Number: 165
From: QUINN TYLER JACKSON          Refer#: NONE
  To: MIKE KRUPPENBACHER            Recvd: NO  
Subj: Re: Arrays                     Conf: (2) Quik_Bas
MK>I really, really wish people would QUANTIFY instead of
MK>EMOTIONALIZING.. it would help a LOT if you SHOWED WHY its
MK>slower and HOW MUCH slower.. (if its .000000001% who CARES?
MK> if its 10 TIMES slower, what works better and by how much?)

MK>Not really to you particularly, I keep getting jumped on
MK>with things like this, and I really, really wish people
MK>would begin to act like PROGRAMMERS and QUANTIFY!

Inspired by your plea, I wrote TYPETEST.BAS, which does exactly what you
ask.  On my computer, anyway, at 12MHZ there is VERY LITTLE difference
in access time.  Try it out on yours....

Vive la HardScience!


--------->8  CUT HERE   8<----------

DECLARE FUNCTION TotalTime% (start$, end$)
'  Okay, Drask, here is a test of STATIC versus DYNAMIC array access
'  time

'  TYPETEST.BAS  v1.0 released into the public domain June 1992
'  By Quinn Tyler Jackson

'  N.B.... to be a truly accurate test, this test must be COMPILED, since
'  STATIC and DYNAMIC are compiler directives



' Set up a STATIC and DYNAMIC array
DIM staticArray(1000)
DIM dynamicArray(1000)

'Assign random values to the elements of each
FOR count = 1 TO 1000
staticArray(count) = RND * 32000
dynamicArray(count) = RND * 32000
NEXT count

'Now, to access the staticArray 30,000 times, and see how long it takes....

startTime$ = TIME$

FOR count = 1 TO 30000
ptr = 1 + (RND * 999)
nul = staticArray(ptr)
endTime$ = TIME$

PRINT "Static test started---> "; startTime$
PRINT "Static test ended-----> "; endTime$
staticTime = TotalTime(startTime$, endTime$)
PRINT "Static access time----> "; staticTime

PRINT "--------"

'Now, to access the dynamicArray 30,000 times and compare the results....

startTime$ = TIME$
FOR count = 1 TO 30000
ptr = 1 + (RND * 999)
nul = dynamicArray(ptr)
endTime$ = TIME$

PRINT "Dynamic test started---> "; startTime$
PRINT "Dynamic test ended-----> "; endTime$
dynamicTime = TotalTime(startTime$, endTime$)
PRINT "Dynamic access time----> "; dynamicTime

PRINT "---------"

timeDiff = dynamicTime - staticTime
PRINT "Time difference--------> "; timeDiff


FUNCTION TotalTime (start$, end$)

' This function returns the total time elapsed between two points in
' that are in "hh:mm:ss" string format

startSecond = VAL(RIGHT$(start$, 2))
startMinute = VAL(MID$(start$, 4, 2))
startHour = VAL(LEFT$(start$, 2))
endSecond = VAL(RIGHT$(end$, 2))
endMinute = VAL(MID$(end$, 4, 2))
endHour = VAL(LEFT$(end$, 2))

TotalTime = (endSecond - startSecond) + ((endMinute -
startMinute) * 60) + ((en


 * SLMR 2.1a * Deuteronomy as you would have him do unto you....

--- Maximus/2 2.01wb
 * Origin: The Nibble's Roost, Richmond BC Canada 604-244-8009 (1:153/918)
Outer Court
Echo Basic Postings

Books at Amazon:

Back to BASIC: The History, Corruption, and Future of the Language

Hackers: Heroes of the Computer Revolution (including Tiny BASIC)

Go to: The Story of the Math Majors, Bridge Players, Engineers, Chess Wizards, Scientists and Iconoclasts who were the Hero Programmers of the Software Revolution

The Advent of the Algorithm: The Idea that Rules the World

Moths in the Machine: The Power and Perils of Programming

Mastering Visual Basic .NET