Почему страницы замедляются при увеличении использования памяти в Internet Explorer - PullRequest
3 голосов
/ 23 января 2009

Я захожу на веб-страницу с утечкой памяти в JavaScript. Если я обновлю страницу несколько раз, она со временем израсходует значительный объем памяти, и JavaScript на странице замедлится. На этой конкретной странице я заметил очень значительное замедление, когда IE получает до 100 МБ оперативной памяти, хотя у меня есть несколько свободных ГБ.

Мой вопрос: почему из-за просочившихся объектов медленно запускается JavaScript? Кто-нибудь знает, как устроен интерпретатор JS в IE, так что это происходит?

Ответы [ 2 ]

7 голосов
/ 23 января 2009

Даже без замены это вызвано «глупой» реализацией сборщика мусора для Javascript в IE. Он использует некоторые эвристики, которые чаще вызывают GC, если есть больше объектов.

Нет способа избежать этого, кроме как избежать утечек памяти, таких как ад, а также избежать создания слишком большого количества объектов Javascript.

С уважением, Маркус

0 голосов
/ 23 января 2009

Я полагаю, что утечка памяти может привести к некоторой фрагментации памяти, которая может замедлить работу приложения. Я не уверен, как это работает, но возможно ли, что части кода JS по-прежнему работают в фоновом режиме - как потерянные процессы? Это может объяснить замедление - поскольку страница становится все более и более загруженной, в то время как вы на самом деле не видите запущенных старых копий.

Хотя я мог бы вытащить это из своей задницы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...