理解在javascript中的内存泄露

在处理像javascript这类的脚本语言时,很容易忽视对象,实例,字符串,数字和方法都需要分配内存.分配与重新分配都被脚本语言本身和运行时的垃圾回收器隐藏。

没有内存管理,也许你可以完成许多事情。但是忽视它,也会导致很重要的程序问题。不正确的清理对象可能使得程序停留超出预计的时间,这些对象继续回应事件,消费资源。它会强迫浏览器去在虚拟磁盘上做页存储并且明显的拖垮计算机。

内存泄露也就是说在你不在使用某个对象时,对这个对象继续持久化。虽然当前的许多浏览器已经对内存泄露做了改进。

1. 基本的对象生命周期

要理解如何防止内存泄露,重要的是理解对象的生命周期。当一个对象创建时,js会自动地分配一个适当大小的内存给这个对象。从那时候开始,创建的对象会持续的被垃圾回收器监视是否是有效的对象。


每隔一段时间,垃圾回收器会检查对象图标以及统计每一个对象对于其他对象有引用的数目。如果对象有0个引用或是只有对于对象本身的引用时,对象内存就可以被再生。

例如:你可以尝试下chrome 开发者工具中的profile。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值