суббота, 4 декабря 2010 г.

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

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

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

Проверим…

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

"

Комментариев нет:

Отправить комментарий