Web Worker内存泄漏?

时间:2013-03-26 20:25:39

标签: javascript google-chrome memory-leaks google-chrome-devtools web-worker

我一直在使用Chrome's Timeline视图来尝试跟踪页面中的一些内存泄漏。我发现了一个特定的内存泄漏,这是因为实例化Web工作者,我似乎无法弄清楚如何摆脱它。

我已经删除了页面,只是加载了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>

1 个答案:

答案 0 :(得分:3)

这是Chrome v25中的内存泄漏。它似乎已在Chrome v26中修复,因为该问题无法再重现。