Какой цикл быстрее?
Проверим…
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
Комментариев нет:
Отправить комментарий