js内存泄漏

关于内存泄漏的基本概念可以参考以下两篇文章:

http://boke.io/javascriptnei-chang-jian-nei-cun-xie-lou-yuan-yin/

http://boke.io/gao-ding-nei-cun-xie-lou/

其中内容讲到dom情况引起的泄漏,讲的不够详细,由于原文代码引入了zepto,而在zepto绑定事件的时候,会产生闭包保存了对原dom元素的引用,导致即使将dom清空,事件如果不off的话,dom还是不会回收。

重复清空的结果,会导致dom、listener的数量不断上升,同时通过profile的snapshot看到,closure数量不断上升。

 

dom数量,从snapshot中看到detached Dom tree的count在不断增加

同时闭包增加如下:

对应zepto代码如下:

 

题外话,还没发现单纯的js泄漏导致的严重问题,最近发生的情况是,使用了大量的css3动画,每个动画元素比较复杂,导致ios crash,ios7比较明显,ios8概率变小但还是会发生。参考资料显示,大量复杂css3动画导致gpu内存不够导致,目前没有很好的解决办法

 

posted @ 2015-09-01 20:05  luke001  阅读(254)  评论(0编辑  收藏  举报