使用共享工作者的Chrome中的内存泄漏?

Mår*_*röm 7 html5 memory-leaks google-chrome web-worker

我有一个启动HTML5 SharedWorker脚本的网页.每次重新加载此页面时,Chrome内存使用量都会增加(按F5键).

worker脚本非常简单.每秒(使用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>
Run Code Online (Sandbox Code Playgroud)

......这是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]);
}; 
Run Code Online (Sandbox Code Playgroud)

托管页面启动/连接到共享工作器并输出从其接收的任何内容.

工作代码保留已连接端口的列表,并每秒向它们发送一次消息.

这很简单.但是,每次在Chrome中重新加载托管页面时.该选项卡的内存负载增加.

以下显示了几次刷新后Chrome的内存使用情况:

刷新几次后,我已达到100 MB

......经过一些清新后,我达到了250 MB ......

一些更清爽后达到250 MB

我的想法已经不多了,认为这一定是Chrome中的一个错误.任何人都可以给我一些指针吗?

更新2

禁用我的AdBlock扩展程序似乎可以解决问题:

没有AdBlock运行

所以我很高兴一段时间但事实证明记忆仍在泄露.禁用AdBlock后,每页刷新的泄漏量会减少很多.

Mår*_*röm 1

看来 Chromium 团队已经解决了这个问题。我无法再重现它了。