>but my tests showed that Array access is much slower.

really? I ran a for-in loop test recently, and Array always seems a  
little faster, regardless of which order you run the tests in. Maybe  
it's hardware-related since mac/pc use different chipsets? (this was  
done on a mac)

var loops:Number = 50000; // beware
var ot:Number = 0;
var at:Number = 0;
var c:Number = 0;
var o:Object= {};
var a:Array = [];
for (var i:Number=0; i<loops; i++) {
        o[String(i)] = i;
        a.push(i);
}
function onEnterFrame() {
        var aLag:Number, oLag:Number;
        var startTime:Number = getTimer(); // clock obj
        for (var j in o) o[j]++;
        oLag = getTimer()-startTime;
        startTime = getTimer(); // clock array
        for (var j in a) a[j]++;
        aLag = getTimer()-startTime;
        ot+=oLag;
        at+=aLag;
        var aav:Number = Math.round(ot/++c);
        var oav:Number = Math.round(at/c);
        trace(newline+'object:'+oLag+'\t(avg:'+oav+')');
        trace('array: '+aLag+'\t(avg:'+aav+')');
        trace((aav>oav?'array':'object')+' slower by '+Math.abs(aav-oav));
}


_______________________________________________
osflash mailing list
[email protected]
http://osflash.org/mailman/listinfo/osflash_osflash.org

Reply via email to