
1 keakon 2011 年 4 月 5 日 Javascript runtime没bug的话,是不会内存泄漏的,你想写出泄露的代码都难 |
2 benzhe 2011 年 4 月 5 日 =.= , 第一次听说js会内存泄漏 |
3 sparklo 2011 年 4 月 5 日 这个自动ajax load我以前做过. 根据你pre-load内容的大小, 在不同的硬件环境和不同的浏览器下性能差别很悬殊. 我不知道有没有更好的办法,我当时做的是把所有的pre-load的变量统统在结束前设为null. 但是最终的效果不太好, 当pre-load视频的时候低配置的电脑性能表现很差. 当时没有经验, 测试的时候没有观察内存使用率。 |
4 kayue 2011 年 4 月 5 日 https://github.com/jdalton/xstats.js "MEM Megabytes of memory used. Make sure it doesn't keep incrementing. (WebKit-based browsers only) " |
5 darasion OP @benzhe 找到一个例子,在我的机器上: 用新出的 Firefox 4 ,按一下按钮内存占用大约增加20M。直到达到系统内存的一半就停止增加了。我外出一小时不做任何操作,回来看还是那么多。 用 chrome 按一下按钮增加20M,然后再按就没有任何反应,最多到40M左右就不往上爬了。。 这个泄漏问题似乎跟不同浏览器垃圾回收机制什么的也有关系啊,似乎很复杂。。。 <html> <head> <script type="text/Javascript"> function LeakMemory(){ var parentDiv = document.createElement("div"); parentDiv.Onclick=function(){ foo(); }; parentDiv.bigString = new Array(1000).join(new Array(2000).join("XXXXX")); } </script> </head> <body> <input type="button" value="Memory Leaking Insert" Onclick="LeakMemory()" /> </body> </html> |
8 apoclast 2011 年 4 月 6 日 只有IE6有这个问题吧, 它的GC算法有问题 |
9 chone 2011 年 4 月 6 日 IE6循环引用的时候有这个问题,其他浏览器没有。 |