【发布时间】:2011-09-03 18:39:25
【问题描述】:
我已经阅读了许多声称循环引用会导致内存泄漏的说法:
- http://www.ibm.com/developerworks/web/library/wa-memleak/
- http://www.quirksmode.org/blog/archives/2005/02/javascript_memo.html
- http://www.javascriptkit.com/javatutors/closuresleak/index3.shtml
所以我在 Chrome / FF4 / IE9 / Opera / Safari 上测试了这个脚本:
<script>
var a, b, list = [];
for(var x=0;x<1000000;x+=2){
a = list[x] = document.createElement("div");
b = list[x + 1] = document.createElement("div");
a.hook = b;
b.hook = a;
}
</script>
任务管理器显示该脚本消耗了约 0.2 GB 的内存。
然后我刷新了 10 次页面。如果脚本确实导致内存泄漏,在 10 次刷新后我应该会看到大约 2 GB 的内存消耗,但任务管理器会显示其他情况。
在哪些浏览器中循环引用会导致 JavaScript 中的内存泄漏?
【问题讨论】:
标签: javascript debugging browser memory-leaks cross-browser