谷歌的开源团队发布了一个新的工具Leakfinder,该工具可以帮助web应用程序开发者在他们的JavaScript程序中找出内存泄露问题。
在具有垃圾收集机制的语言(如JavaScript)中,不会因为忘记释放内存而出现传统的内存泄露问题,因为如果对象的所有引用被drop后,对象会被回收,内存会自动释放。但是,JavaScript程序会在无意间保留对象引用而造成内存泄露。
来看个例子(使用ClosureJavaScript库):goog.Disposable是一个一次性对象接口,在对象(一个goog.Disposable实例)的最终引用被drop之前,用户代码应该调用对象的dispose()方法,该方法可以释放资源。但是,web应用程序可能会忘记在drop对象引用之前调用dispose()方法。
Leakfinder可以检测类似于goog.Disposable的未被处理对象,并输出相关的实用信息(如创建对象时的栈跟踪信息)。它可以生成机器可读的信息,并可以作为测试自动化的一部分来使用。
Leakfinder通过配置也可以检测其他类型的内存泄露,还可以和除了Closure之外的其他JavaScript库一起使用。
介绍内容来自iteye
评论