четверг, 14 апреля 2011 г.

Копируем массив

Опять сравнение на скорость простой операции. На этот раз массива.

var arr1:Array = [1,2,3,4,5,6];
var arr2:Array;
var score:int;
score = getTimer();
for (var i=0; i<10000; i++)
arr2 = arr1.concat();
trace(arr1, arr2, getTimer() - score);
score = getTimer();
for (var i=0; i<10000; i++)
arr2 = arr1.slice();
trace(arr1, arr2, getTimer() - score);
view raw gistfile1.as hosted with ❤ by GitHub

Результаты получились немного странноватыми. Диапазон примерно 9-14 очков для каждого способа. То один быстрее заканчивает, то второй. Ну и конечно надо понимать что копирование сложного объекта не произойдет. Т.е. код:

var arr1:Array = [{a:1, b:2},{c:3, d:4},{e:5, f:6}];
var arr2:Array;
arr2 = arr1.concat();
arr2[2].c = 33;
trace(arr1[2].c, arr2[2].c);
view raw gistfile1.as hosted with ❤ by GitHub

выдаст: 33 33.

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

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