*наркоманы*
|
Небольшой тест на хроме.
Логично предположить что замыкания будут отражаться на расходе памяти. Пробую мерить расход памяти для 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, время: 03:59. |