По началу на двух первых тестах даже расстроился - думал фигня вообще и не стоит заморачиваться как работать с массивами, но последний, который считается лучшим, поистине оказался лучшим)
И так тестировал на Winodws 7 64bit Home Pre RU, Sony Vaio VPCEJ i5, 8 гб ОЗУ
1.
Тесты(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.
Тесты(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.
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
Итог: обратный обход массивов нужно применять. Если нравится первые два(и можете себе это позволить), то замарачиваться в выборе между ними не стоит, какой ближе к душе.
И так тестировал на 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
Комментариев нет:
Отправить комментарий