首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用共享工作程序的Chrome内存泄漏?

使用共享工作程序的Chrome内存泄漏?
EN

Stack Overflow用户
提问于 2011-08-18 21:29:00
回答 1查看 1.6K关注 0票数 7

我有一个开始HTML5 SharedWorker脚本的网页。每次重新加载这个页面时,Chrome内存的使用量都会增加(点击F5)。

工作脚本非常简单。每秒钟(使用setInterval)就会向连接的端口发送一条消息。

似乎每次我点击F5时,工作进程都被终止并重新启动。这是我所期望的,因为这个工作人员实际上不会被多个“文档”共享。但是,我不明白为什么每次刷新时内存使用量都会增加。

有人知道为什么会这样吗?

考虑到每次页面重新加载时内存都会增加,这让我认为我根本不能在Chrome中使用共享工作人员。有没有人能够做到这一点而没有记忆问题?

更新

这是宿主HTML:

代码语言:javascript
运行
复制
<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>

...and,我是worker.js

代码语言:javascript
运行
复制
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刷新更多我达到250 MB.

我的想法不多了,我认为这一定是Chrome中的一个bug。有人能给我一些指针吗?

更新2

禁用我的AdBlock扩展似乎解决了这个问题:

因此,我很高兴有一段时间,但是事实证明,内存仍然在被泄露,。当AdBlock被禁用时,每次刷新页面的泄漏量就会少得多。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-13 15:56:19

看来铬组已经解决了这个问题。我不能再复制了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7114378

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档