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的内存使用情况:

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

我的想法已经不多了,认为这一定是Chrome中的一个错误.任何人都可以给我一些指针吗?
更新2
禁用我的AdBlock扩展程序似乎可以解决问题:

所以我很高兴一段时间但事实证明记忆仍在泄露.禁用AdBlock后,每页刷新的泄漏量会减少很多.
| 归档时间: |
|
| 查看次数: |
1291 次 |
| 最近记录: |