Web Worker 内存泄漏?

5
我一直在使用Chrome的时间轴视图来尝试跟踪页面中的一些内存泄漏。我发现一个特定的内存泄漏是由于实例化Web Workers而导致的,但我似乎无法摆脱它。
我已经将页面简化为仅加载Web Worker并不做其他任何事情。每次刷新页面时,Chrome的时间轴视图上的文档计数永久增加1。如果我注释掉对Worker构造函数的调用,并开始刷新页面,则文档计数会增加然后减少,最终保持不变。手动终止/关闭工作器并不能解决这个问题(虽然当我查看开发者工具的源选项卡时,我可以看到工作器消失)。
这是我的精简版.htm文件。我能够通过只使用这个简短的html/javascript代码块来复现这个问题:
<html>
<script type="text/javascript">
var worker_blob = new Blob(["var test = 1;"]);
var worker_url = window.URL.createObjectURL(worker_blob);
// Comment out the line below and the memory leak goes away
var worker = new Worker(worker_url);
window.URL.revokeObjectURL(worker_url);
</script>
</html>

当您的工作线程完成其任务时,它可以自行关闭或者您的页面可以调用 terminate - Denys Séguret
我已经尝试了两种方法,但都没有解决问题。此外,当我离开页面时,工作程序应该被终止。 - Jon Senchyna
2
这是不是偶然的 https://code.google.com/p/chromium/issues/detail?id=181680 ? - Alexander Pavlov
我不能说我完全理解这个错误报告,但它似乎与我遇到的问题有关。希望这个简单的测试用例能帮助您重现/修复此问题。 - Jon Senchyna
1个回答

3
这是Chrome v25中的内存泄漏问题。在Chrome v26中,该问题已得到修复,因此无法再次出现。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接