Web Worker内存泄漏



我一直在使用Chrome的时间轴视图试图跟踪一些内存泄漏在我的页面。我发现了一个特殊的内存泄漏,这是由实例化web worker导致的,我似乎不知道如何消除。

我已经剥离了页面,只加载web worker,不做任何其他事情。每次刷新页面时,Chrome的时间轴视图上的文档计数永久增加1。如果我注释掉对Worker构造函数的调用,并开始刷新页面,文档计数会先增加后减少,实际上保持不变。手动终止/关闭worker并不能解决问题(尽管当我查看开发人员工具的Sources选项卡时,我可以看到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>

这是Chrome v25中的内存泄漏。这个问题似乎在Chrome v26中得到了修复,因为这个问题再也不能重现了。

最新更新