Вызывает ли утечка памяти циклические ссылки в JavaScript? - PullRequest
2 голосов
/ 28 мая 2011

Я читал много утверждений о том, что циклические ссылки могут вызвать утечку памяти:

Итак, я протестировал этот скрипт на Chrome / FF4 / IE9 / Opera / Safari:

<script>
var a, b, list = [];

for(var x=0;x<1000000;x+=2){
    a = list[x] = document.createElement("div");
    b = list[x + 1] = document.createElement("div");
    a.hook = b;
    b.hook = a;
}
</script>

Диспетчер задач показывает, что скрипт потребляет ~ 0,2 ГБ памяти.

Затем я обновил страницу 10 раз.Если скрипт вызывает утечку памяти, после 10 обновлений я должен видеть, что ~ 2 ГБ памяти используется, но диспетчер задач показывает иначе.

В , в каких браузерах циклические ссылки вызывают утечки памяти вJavaScript

1 Ответ

4 голосов
/ 28 мая 2011

Утечки памяти были в основном проблемой в старых IE с циклическими ссылками и сборкой мусора подсчета ссылок, которая никогда полностью не исправляла все (никогда не счетчик ссылок 0 в циклических ссылках).

Я думаю, что утечки памяти в IE имеютисправлено с версии IE8.

Microsoft имеет подробную статью по этому вопросу .

...