Утечка памяти в Chrome с использованием Shared Worker?

У меня есть веб-страница, которая запускает сценарий HTML5 SharedWorker . Использование памяти Chrome увеличивается каждый раз, когда эта страница перезагружается (нажатие F5).

Рабочий сценарий очень просто. Каждую секунду (с использованием setInterval ) сообщение отправляется на подключенный порт.

Кажется, что рабочий процесс завершается и перезапускается каждый раз, когда я нажимаю F5. Это то, что я ожидал поскольку на самом деле воркер не используется более чем одним «документом». Однако я не могу понять, почему использование памяти увеличивается при каждом обновлении.

Кто-нибудь знает, почему это происходит?

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

UPDATE

Это HTML-код хостинга:

<div id="output"></div>
<script type="text/javascript" src="/scripts/jquery-1.4.4.js"></script>
<script type="text/javascript">
$(function () {
    var worker = new SharedWorker("/scripts/worker.js") 

    worker.port.onmessage = function(e) {
        $("#output").append($("<div></div>").text(e.data));
    }; 

    worker.port.start();
});
</script>

... и это worker.js :

var list = [];

setInterval(function () {
    for (var i = 0; i < list.length; ++i) {
        list[i].postMessage("#connections = " + list.length);
    }
}, 1000);

onconnect = function (event) {
    list.push(event.ports[0]);
}; 

Хостинговая страница запускается / подключается к разделяемому исполнителю и выводит все, что от него получено.

Рабочий код хранит список подключенных портов и отправляет им всем сообщение раз в секунду.

Это простая вещь. Тем не менее, каждый раз страница хостинга перезагружается в Chrome. Полезная нагрузка памяти для этой вкладки увеличена.

Ниже показано использование памяти Chrome после нескольких обновлений:

After refreshing a couple of times I&#39;ve reached 100 MB

... после обновления я достиг 250 МБ ...

Reaching 250 MB after some more refreshing

У меня заканчивается идей, думая, что это ошибка в Chrome. Может ли кто-нибудь дать мне какой-то указатель?

ОБНОВЛЕНИЕ 2

Отключение моего расширения AdBlock, похоже, устранило проблему:

Running without AdBlock

Я был немного доволен, но оказалось, что память все еще используется утечка . Если AdBlock отключен, утечка при каждом обновлении страницы становится немного меньше.

7
задан Mårten Wikström 30 September 2011 в 15:15
поделиться