суббота, 30 июня 2012 г.

Тестирование алгоритмов работы с массивами

По началу на двух первых тестах даже расстроился - думал фигня вообще и не стоит заморачиваться как работать с массивами, но последний, который считается лучшим, поистине оказался лучшим)

И так тестировал на Winodws 7 64bit Home Pre RU, Sony Vaio VPCEJ i5, 8 гб ОЗУ



1.


var myarray = [];

for(var i=0;i<1000000;i++){

   myarray[i]=i;

}

var start = new Date(); 

for (var i = 0; i < myarray.length; i++) {

    myarray[i]+=(100 - i)*5;

}

var end = new Date();

console.log(end - start);



Тесты(4 раза для точности):
Chrome 20.0.1132.47 m
1960
1988
1914
1915

FireFox 13.0.1
4713
4701
4826
4761

MS IE 9
2229
2234
2261
2203
---------------------------------------------------------------------------
2.


var myarray = [];

for(var i=0;i<1000000;i++){

   myarray[i]=i;

}

var start = new Date(); 

for (var i = 0, max = myarray.length; i < max; i++) {

 myarray[i]+=(100 - i)*5;

}

var end = new Date();

console.log(end - start);



Тесты(4раза для точности):
Chrome 20.0.1132.47 m
1974
1904
1908
1933

FireFox 13.0.1
4777
4668
4751
4778

MS IE 9
2222
2251
2292
2097
---------------------------------------------------------------------------
3.


var myarray = [];

for(var i=0;i<1000000;i++){

   myarray[i]=i;

}

// preferred 2

var start = new Date(),

 i = myarray.length;

while (i--) {

 myarray[i]+=(100 - i)*5;

}

var end = new Date();

console.log(end - start);



Chrome 20.0.1132.47 m
1381
1361
1367
1386

FireFox 13.0.1
3436
3409
3375
3392

MS IE 9
1630
1659
1647
1460

Итог: обратный обход массивов нужно применять. Если нравится первые два(и можете себе это позволить), то замарачиваться в выборе между ними не стоит, какой ближе к душе.

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

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