Какой цикл быстрее?

Проверим…
var arr:Array = new Array();

for (var i:uint = 0; i < 100000; i++) arr.push(i);

var ln:uint = arr.length;

/**
* for each
*/
var count:uint = 0;
var t:uint = getTimer();
for each(var n:uint in arr)
{
count += n;
}
trace("for each:", getTimer() - t);

/**
* for
*/
count = 0;
t = getTimer();
for (i = 0; i < ln; i++)
{
count += arr[i];
}
trace("for:", getTimer() - t);

/**
* while
*/
count = 0;
i = 0;
t = getTimer();
while (i < ln)
{
count += arr[i];
i++;
}
trace("while:", getTimer() - t);

/**
* for in
*/
count = 0;
t = getTimer();
for (var key:String in arr)
{
count += arr[key];
}
trace("for in:", getTimer() - t);
 
Результаты:

for each: 9

for: 26

while: 24

for in: 149

P.S.

Если вместо Array использовать Vector, то результаты будут таковы:

for each: 9

for: 7

while: 11

for in: 199