在处理像javascript这类的脚本语言时,很容易忽视对象,实例,字符串,数字和方法都需要分配内存.分配与重新分配都被脚本语言本身和运行时的垃圾回收器隐藏。
没有内存管理,也许你可以完成许多事情。但是忽视它,也会导致很重要的程序问题。不正确的清理对象可能使得程序停留超出预计的时间,这些对象继续回应事件,消费资源。它会强迫浏览器去在虚拟磁盘上做页存储并且明显的拖垮计算机。
内存泄露也就是说在你不在使用某个对象时,对这个对象继续持久化。虽然当前的许多浏览器已经对内存泄露做了改进。
1. 基本的对象生命周期
要理解如何防止内存泄露,重要的是理解对象的生命周期。当一个对象创建时,js会自动地分配一个适当大小的内存给这个对象。从那时候开始,创建的对象会持续的被垃圾回收器监视是否是有效的对象。
每隔一段时间,垃圾回收器会检查对象图标以及统计每一个对象对于其他对象有引用的数目。如果对象有0个引用或是只有对于对象本身的引用时,对象内存就可以被再生。
例如:你可以尝试下chrome 开发者工具中的profile。