Dict/Vec/Arr performance test

by John_Blackburne
Comparing the performance of Dictionary, Array and Vector
♥0 | Line 62 | Modified 2012-02-24 13:51:39 | MIT License
play

ActionScript3 source code

/**
 * Copyright John_Blackburne ( http://wonderfl.net/user/John_Blackburne )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/yvRe
 */

package {
    import flash.display.Sprite;
    import flash.utils.*;
    import flash.text.TextField;
    
    public class FlashTest extends Sprite {
        private var txt:TextField = new TextField();
        public final function FlashTest() {
            addChild(txt);
            // write as3 code here..
            var startTime : Number = 0;
            var endTime : Number = 0;
            var i : int = 0;
            var iterations : int =500000;
 
            var dictionary : Dictionary = new Dictionary();
            var array : Array = new Array(iterations);
            var vector : Vector.<int> = new Vector.<int>(iterations * 2);
            var val : int;
            var iTmp:int, iStart:int, iEnd:int;
 
            startTime = getTimer();
            
            iEnd = iterations / 2;
            iStart = -iEnd;

            for (i = iStart; i < iEnd; ++i)
            {
                dictionary[i] = i;
            }
            txt.appendText("Dictionary:" + String( getTimer() - startTime));
 
            startTime = getTimer();
            for (i = iStart; i < iEnd; ++i)
            {
                iTmp = (i >= 0) ? 2 * i : -1 - 2 * i;
                array[iTmp] = i;
            }
            txt.appendText("\nArray:" + String( getTimer() - startTime));
 
            startTime = getTimer();
            for (i = iStart; i < iEnd; ++i)
            {
                iTmp = (i >= 0) ? 2 * i : -1 - 2 * i;
                vector[iTmp] = i;
            }
            txt.appendText("\nVector:" + String( getTimer() - startTime));
 
            startTime = getTimer();
 
            for (i = iStart; i < iEnd; ++i)
            {   
                val = dictionary[i];
            }
 
            txt.appendText("\nDictionary:" + String( getTimer() - startTime));
 
            startTime = getTimer();
 
            for (i = iStart; i < iEnd; ++i)
            {   
                iTmp = (i >= 0) ? 2 * i : -1 - 2 * i;
                val = array[iTmp];
            }
 
            txt.appendText("\nArray:"+ String(getTimer() - startTime));
 
            startTime = getTimer();
 
            for (i = iStart; i < iEnd; ++i)
            {
                iTmp = (i >= 0) ? 2 * i : -1 - 2 * i;
                val = vector[iTmp];
            }
 
            txt.appendText("\nVector:" + String( getTimer() - startTime));
 
        }
    }
}

Forked