Сообщение от Gvozd
|
ну, если вас так интересует этот вопрос, то составьте сркипт, с созданием больших объектов(чтоб утечка памяти на глаз была заметна), слушателячми и прочим, и последующим удалением
выложите его тут, пускай в разных протестят, и оформят здесь результаты.
а мне влом писать скрипт, я пошел спать.
всем спокойной ночи
|
Протестить можно, допустим, так:
Код:
|
for (var i = 0,
efn = window.addEventListener ? 'addEventListener' : 'attachEvent',
et = (window.addEventListener ? '' : 'on') + 'click',
e; i < 100000; ++i
)
(e = document.createElement('DIV'))[efn](et, function(e){ return function(){}; }(e), false); |
Лиса вначале ест память, потом, если дать ей немного остыть - отдает.
Опера-9 довольно быстро и корректно отрабатывает сборку мусора, отъем памяти почти незаметен.
Осел, ест, но, как и ожидалось, не отдает. Если убрать циклическую ссылку из замыкания (выделена жирным), то, осел вообще не ест память (либо отдает слишком быстро). Если свернуть окно осла, память освобождается, но если потом опять развернуть и еще разок прогнать цикл - достает всю кучу мусора из свопа и продолжает ее наполнять )
Сафаря-3, память отдавать не торопится - или это похожий баг, или там уборщик мусора ленивый )