*наркоманы*
|
Небольшой тест на хроме.
Логично предположить что замыкания будут отражаться на расходе памяти. Пробую мерить расход памяти для 10 000 000 замыканий. Cначало прогонем без цикла - 5 340 (не одного замыкания) для alert (1) - 473 000 (здесь мы не тянем за собой scope) для alert (data) - 717 000 (здесь мы тянем за собой scope) для eval - БОЛТ :D, виснет, но для 1000 000 замыканий составляет 117 000, значит где то 1 170 000. для 10 000 000 Код теста
var arr=[];
test=function(){
var data="893749237776876872346873264782364823647324823647326473647";
data=data+"893749237776876872346873264782364823647324823647326473647";
data=data+"893749237776876872346873264782364823647324823647326473647";
data=data+"893749237776876872346873264782364823647324823647326473647";
data=data+"893749237776876872346873264782364823647324823647326473647";
data=data+"893749237776876872346873264782364823647324823647326473647";
data=data+"893749237776876872346873264782364823647324823647326473647";
return function(){
eval(" alert"+"(data)");
//alert(data);
//alert(1);
}
}
for (var i=0;i<10000000;i++){
arr.push(test());
}
выводы. -Замыкание пояляется только если мы используем переменные внешний функции -eval ощутимо увеличивает расход памяти на замыкания, к тому имеет проблемы с большим количеством. |
Цитата:
|
Задача № 1
function continueSequence(arr){
return function(){
var arrLength = arr.length;
var gen = arr[arrLength - 1] - arr[arrLength - 2] + arr[arrLength - 1];
arr.push(gen);
return gen;
}
}
|
:lol: вы тоже проигрываете читая свои старые каменты на форуме?
|
| Часовой пояс GMT +3, время: 22:56. |