HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

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:517572
用户头像

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

关注

评论

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

汽车电子控制系统的构成

不脱发的程序猿

汽车电子 嵌入式软件 汽车电子控制系统

Kubernetes MetalLB 作为 Load Balancer上

CTO技术共享

短视频软件开发:推荐算法没有想象的那么复杂

开源直播系统源码

直播系统 直播系统源码 短视频直播

算法之“杨辉三角”题解

掘金安东尼

算法 前端 8月月更

加密世界的福音,Galaxy Project上领取专属Zebec OAT

鳄鱼视界

每日一R「13」数据结构(四)闭包

Samson

学习笔记 8月月更 ​Rust

详解AUTOSAR:什么是AUTOSAR?(理论篇—1)

不脱发的程序猿

汽车电子 嵌入式开发 AUTOSAR

开源一夏 | 使用layui框架实战之栅格系统和菜单评分组件运用心得

恒山其若陋兮

开源 8月月更

GaussDB(DWS)如何实现实时,批量和交付式查询一站式开发

乌龟哥哥

8月月更

租金、物业费的催收困境,如何解决?

IT资讯搬运工

公众版与政企版,这两款云电脑我都要!

天翼云开发者社区

IPv6过渡技术的推进策略

穿过生命散发芬芳

ipv6 8月月更

详解CAN总线:高速CAN总线和低速CAN总线的特性

不脱发的程序猿

汽车电子 ISO 11898 高速CAN总线 低速CAN总线 CAN总线

云原生(二十四) | Kubernetes篇之Kubernetes 配置

Lansonli

云原生 k8s 8月月更

Kubernetes MetalLB 作为 Load Balancer下

CTO技术共享

面试突击77:Spring 依赖注入有几种?各有什么优缺点?

王磊

Java 常见面试题

【算法实践】| 一步步手把手带你实现寻找最小公倍数

迷彩

算法 算法实践 8月月更 最小公倍数

DDD实战(12-终篇):DDD下微服务的“分分合合”及一个倡议

深清秋

DDD 软件架构 8月月更

Linux常用命令

楠羽

揭秘百度智能测试在测试分析领域实践

百度Geek说

测试 数据 用例

云原生 SIG:关于 Koordinator 混部原理及最佳实践 | 第 43 期

OpenAnolis小助手

开源 云原生 混部 sig 龙蜥大讲堂

[JS真好玩] 我帮掘金找到了一个小Bug,可利用该Bug增加专栏粉丝数

HullQin

CSS JavaScript html 前端 8月月更

Kubernetes资源编排系列之五: OAM篇

阿里云大数据AI技术

运维 开放应用模型

英伟达首席科学家:深度学习硬件的过去、现在和未来

OneFlow

机器学习 深度学习 硬件

翻译|使用 StatefulSet 运行数据库应用

RadonDB

数据库 Kubernetes RadonDB

头脑风暴:回文子串

HelloWorld杰少

算法 LeetCode 数据结构, 8月月更

架构实战营模块五作业

zhihai.tu

Kubernetes薅多云羊毛怎么部署

CTO技术共享

Go-Excelize API源码阅读(十九)——SetHeaderFooter

Regan Yue

Go 开源 源码解析 8月日更 8月月更

呐,HTTP接口安全的八种对策送给你了

知识浅谈

HTTP API 8月月更

电商行业:全链路监测广告投放效果,用数据驱动业务增长

HarmonyOS SDK

分析 电商营销

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