>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