Google开源Leak Finder——用于检测内存泄漏的JavaScript工具

标签: google 开源 leak | 发表时间:2013-01-08 14:51 | 作者:
出处:http://pipes.yahoo.com/pipes/pipe.info?_id=10560380f804c7341f042a2b8a03e117

近日,Google开源了 Leak Finder,这款工具可以查看JavaScript应用的堆,进而发现内存泄漏。

作为一门垃圾收集语言,JavaScript并不会出现常见的内存泄露情况,特别是像C++等语言中所见到的那种。但如果依旧将内存分配给那些不再使用的对象,那么应用就会出现内存泄漏;如果泄漏情况很严重,那么应用的性能就会受到影响,甚至无法执行。

JavaScript中会导致内存泄漏的一种情况就是循环引用,特别是在使用闭包的情况下。当闭包导致内存泄露时,Leak Finder能够检测到,然后警告开发者并指出有问题的代码。该工具会在堆中查找Google Closures的 goog.Disposable对象,验证dispose()方法是否得到调用以及事件监听器是否得到释放,因为他们持有着DOM对象的引用,因此会导致内存泄漏。

目前,Leak Finder与 Closures搭配使用,但你也可以通过配置让其与其他库搭配使用。Closures是个开源的JavaScript库,包含了小部件、一个事件框架、用于操纵DOM的工具、一个单元测试框架、动画工具等组件,在GMail、GDocs及GMaps等众多Google服务中得到了广泛应用。

此外,代码分析必须得在Chrome 21及更高版本上进行,并且使用远程调试与开发者工具。

Google此前曾开源了不少JavaScript工具,如 Closure Compiler(用于生成紧凑且高性能代码的工具)、 Closure Templates(用于动态生成HTML)、 Closure Linter(JavaScript风格检查器)及 Closure Stylesheets(对CSS的一套扩展)。早在去年6月,Google曾发布了 GWT(另一个用于构建JavaScript应用的工具集)的一个发布候选版,但其未来还是有些不太明朗,因为 Google将很多GWT开发者都转到了Dart上,后者被看作是“对GWT的一次巨大变革,可以为最终用户创建出更棒的Web应用,我们对其潜力持乐观态度”。

查看英文原文: Google Open Sources Leak Finder, a JavaScript Tool for Detecting Memory Leaks

译者 张龙 热衷于编程,乐于分享,对新技术有强烈的探索欲,对Java轻量级框架有一定研究。

您可能也会喜欢

相关 [google 开源 leak] 推荐:

Google开源Leak Finder——用于检测内存泄漏的JavaScript工具

- - InfoQ cn
近日,Google开源了 Leak Finder,这款工具可以查看JavaScript应用的堆,进而发现内存泄漏. 作为一门垃圾收集语言,JavaScript并不会出现常见的内存泄露情况,特别是像C++等语言中所见到的那种. 但如果依旧将内存分配给那些不再使用的对象,那么应用就会出现内存泄漏;如果泄漏情况很严重,那么应用的性能就会受到影响,甚至无法执行.

Google开源LevelDB

- 酿泉 - Solidot
Google宣布在BSD许可证下开源其键值存储引擎LevelDB. LevelDB C++库可用于多种不同环境,如被浏览器用于存储最近访问的网页缓存,或者被操作系统使用去储存安装的软件包和依赖包清单,或被应用程序用于存储用户设置. Google称,即将发布的新版Chrome浏览器,就包含了基于LevelDB的IndexedDB HTML5 API实现.

tomcat报错:This is very likely to create a memory leak问题解决

- - Web前端 - ITeye博客
tomcat memory leak解决方案. 这种问题在开发中经常会碰到的,看看前辈的总结经验. Tomcat内存溢出的原因.   在生产环境中tomcat内存设置不好很容易出现内存溢出. 造成内存溢出是不一样的,当然处理方式也不一样.   这里根据平时遇到的情况和相关资料进行一个总结. 常见的一般会有下面三种情况:.

Chris diBona 谈 Google 与开源及 Ubuntu

- Riku - Wow! Ubuntu
英文原文:Google: "Android is the Linux desktop dream come true". 原作者:Andreas Proschofsky / 译者:Riku. 这篇文章是由 derStandard.at 网站记者 Andreas Proschofsky 撰写,主要内容是今年 5 月中旬在 Googles I/O 会议上对 Google 开源主管 Chris DiBona 的采访总结.

Google正式开源LevelDB项目

- Jie - 新闻 - LUPA开源社区
  Google 宣布 LevelDB 项目开源,使用的开源授权协议为 BSD.   Leveldb是一个google实现的非常高效的kv数据库,目前的版本1.2能够支持billion级别的数据量了. 在这个数量级别下还有着非常高的性能,主要归功.

开源第三方 Google Dictionary 应用

- SotongDJ - 谷奥——探寻谷歌的奥秘
感谢作者 easisee 的自爆. easisee利用非官方API制作了一个第三方的 Google Dictionary 应用,跟之前我们报道过的那个山寨Google Dictionary不同,这个支持了原有的各种语言,并使用 HTML5,使得iOS和Android设备上即便不安装 flash 也可以直接播放语音,另外可以设定为自定义搜索引擎.

Google code android开源项目(四)

- - CSDN博客推荐文章
一个简洁的android rss阅读器. 创建者写的一些应用包括:闹钟和调节屏幕亮度小工具等. 远程控制winamp(5.5以上版本).  Tesseract OCR(HP实验室开源的)封装的 Android APIs. 使用 visual studio 开发Android NDK C/C++ . android版quake2.

Google 联合 MIT 开源 Android App Inventor

- - 博客园_新闻
Google 联合 MIT 发布了 App Inventor for Android 的开源版本.. AppInventor 是谷歌推出一种软件工具. 这种工具可以使用户更容易的为 Android 智能手机编写应用程序. 谷歌该 Android 应用工具使人们可以拖放代码块(表现为图形图像代表不同的智能手机功能),将这些代码放在一起,类似于将 Lego blocks 放置在一起.

Google开源主管解释为什么开源“残酷”

- - Solidot
Google开源负责人Chris DiBona接受了Red Hat的Jodi Biddle的采访,他谈论到的一个主题是“为什么说开源残酷”. DiBona指出,软件行业的软件工程管理不推崇分散式的开发,一家公司如果依赖于一个分布式的非均质团队是很难运转的. 然而,开源世界却创造出了一些世界级的软件.

Google独立运营摩托罗拉 保持Android开源

- 涛涛 - cnBeta.COM
《华尔街日报》消息,Google同意125亿美元收购摩托罗拉移动,全部现金支付,这将使Google在移动计算市场更具竞争力. 8个月前,摩托罗拉分拆为两家公司. 收购摩托罗拉移动后,Google将拥有摩托罗拉移动的专利组合,这也是Google失手北电专利争夺战之后的一大反击,它可以增强Anroid的专利话语权.