在 2025 收官前,看清 Data + AI 的真实走向,点击查看 BUILD 大会精华版 了解详情
写点什么

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

  • 2013-01-08
  • 本文字数:777 字

    阅读完需:约 3 分钟

近日,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

2013-01-08 00:517849
用户头像

发布了 88 篇内容, 共 274.2 次阅读, 收获喜欢 9 次。

关注

评论

发布
暂无评论
发现更多内容

阿里云前端专家冯军:前端用户体验该如何优化

云布道师

阿里云

js函数柯里化-面试手写版

helloworld1024fd

JavaScript

【双机热备小知识】两台服务器可以做双机热备吗?

行云管家

高可用 双机热备

ZooKeeper 避坑实践:SnapCount 设置不合理导致磁盘爆满,服务不可用

阿里巴巴云原生

zookeeper 阿里云 云原生

JS继承有哪些,你能否手写其中一两种呢?

helloworld1024fd

JavaScript

ChatGPT的一小步,NLP范式转变的一大步

OneFlow

人工智能 深度学习

技术管理 之 跨功能需求管理

码猿外

技术管理 非功能性需求 跨功能性需求

校招前端二面常考react面试题(边面边更)

beifeng1996

React

一种多维数据库的数据事务专利解读

元年技术洞察

数据中台 数字化转型 专利解析 多维数据库

读 NebulaGraph源码 | 查询语句 LOOKUP 的一生

NebulaGraph

图数据库 源码解读

双机热备的优点简单分析-行云管家

行云管家

高可用 双机热备

极狐GitLab与欧拉操作系统完成兼容认证,开源产业自主创新再突破!

openEuler

Linux 开源 操作系统 openEuler 资讯

2022年是最烂的一年吗?我的2022年终总结

Zhendong

总结 年终总结 2022年终总结

海量数据同步首选 SeaTunnel Zeta 引擎正式发布!

Apache SeaTunnel

大数据 开源 apache 社区 Apache SeaTunnel 数据集成平台

OneFlow源码解析:静态图与运行时

OneFlow

人工智能 深度学习

React的useLayoutEffect和useEffect执行时机有什么不同

beifeng1996

React

腾讯前端二面高频手写面试题总结

helloworld1024fd

JavaScript

TiDB 6.5 LTS 发布 企业级关键能力跃升

极客天地

校招前端一面必会vue面试题指南

bb_xiaxia1998

Vue

程序员面试中一面、二面、三面有什么区别?

小小怪下士

Java 程序员 java面试

功能上新|一键归因分析,快速洞察指标波动原因

Kyligence

指标中台 归因分析

如何通过C#/VB.NET将格式应用于 Word 中的字符

在下毛毛雨

C# .net word文档 字符格式

React循环DOM时为什么需要添加key

beifeng1996

React

前端一面常考react面试题

beifeng1996

React

注意这八个容易损坏LED显示屏的情况

Dylan

LED显示屏 全彩LED显示屏 led显示屏厂家

如何在Java程序中合并和拆分Excel文档

Geek_249eec

Java Excel 工作表

假如问:你是怎样优化Vue项目的,该怎么回答

bb_xiaxia1998

Vue

前端二面手写面试题总结

helloworld1024fd

JavaScript

软件测试/测试开发丨iOS 自动化测试踩坑(一): 技术方案、环境配置与落地实践

测试人

ios xcode 软件测试 自动化测试 测试开发

前端高频vue面试题总结

bb_xiaxia1998

Vue

Google开源Leak Finder——用于检测内存泄漏的JavaScript工具_开源_Abel Avram_InfoQ精选文章