javascript 垃圾回收机制

参考js高程(javascript高级程序设计)中的内容做了如下归纳整理

javascript 垃圾回收机制

js垃圾收集特点

自动垃圾收集机制,即执行环境会负责管理代码执行过程中使用的内存。

两种垃圾收集方式:

标记清除

  • 特点:
    • 变量进入环境后标记为“进入环境”,变量离开环境后,则将其标记为“离开环境”

引用计数

  • 特点
    • 跟踪记录每个值被引用的次数
  • 引言:
    • IE中有一部分对象并不是原生javascript对象,比如BOM,DOM其实就是用的c++的COM(组件对象模型)对象的形式实现的,而其的GC机制就是采用的引用计数策略。

内存管理

  • js特殊的内存管理机制:分配给web浏览器的可用内存数量通常比分配给桌面应用程序的少。目的是处于安全因素,防止运行js的网页耗尽内存把系统也崩掉。

优化内存占用

  • 解除引用
    • 一旦数据不再有用,最好通过将其值设置为null来释放其引用,作用是:让值脱离执行环境,以方面垃圾收集器下次运行时将其回收。

其他

闭包-内存泄漏

为什么会出现内存泄漏
function assignHandler(){
	var ele=document.getElementById('someElement');
	ele.onclick=function(){
		console.info('click');
	}
}

以上代码创建了一个作为ele元素事件处理程序的闭包,而这个闭包又创建了一个循环引用。只要匿名函数存在,ele的引用数就至少是1,因此它占用的内存永远不会被回收。

解决内存泄漏

将不再继续使用的闭包保存的整个变量对象赋值为null,对其进行解除引用,防止内存泄漏。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值