Actionscript Code:
var a:Array = [new BitmapData (1, 1), new BitmapData (1, 1)];
var v:Vector.<BitmapData> = new Vector.<BitmapData> (2, true);
v [0] = a [0]; v [1] = a [1];
var t0:int = getTimer (), i:int, bd:BitmapData;
for (i = 0; i < 1e8; i++) bd = a [i % 2];
trace (getTimer () - t0); // 10204
t0 = getTimer ();
for (i = 0; i < 1e8; i++) bd = v [i % 2];
trace (getTimer () - t0); // 10078
will now re-test in release mode
edit: release mode test
Actionscript Code:
var tf:TextField = new TextField; tf.autoSize = "left";
var s:String = "";
var a:Array = [new BitmapData (1, 1), new BitmapData (1, 1)];
var v:Vector.<BitmapData> = new Vector.<BitmapData> (2, true);
v [0] = a [0]; v [1] = a [1];
var t0:int = getTimer (), i:int, bd:BitmapData;
for (i = 0; i < 1e8; i++) bd = a [i % 2];
s += (getTimer () - t0) + " ";
t0 = getTimer ();
for (i = 0; i < 1e8; i++) bd = v [i % 2];
s += (getTimer () - t0);
tf.text = s; addChild (tf);
10281 10188
so, I'm back to what I said: I would sure like to see some test code, please.
edit: ok, I'm also getting results like 10296 10360 but that's ~3% fluctuation, at least both methods perform equally fast/slow, without clear winner any way. except with Vectors you get compile-time type checking and code hints, which is clear winner in my book :)