标识无用标量的策略
标记清除
进入环境、离开环境
方式:1.翻转某个特殊的位来记录变量何时计入环境
2.使用变量列表记录进入、离开环境的变量
引用计数
跟踪记录每个值被引用的次数
循环引用
IE中一部分对象不是原生JavaScript对象,其BOM和DOM对象
使用C++以COM对象形式实现,COM的垃圾收集机制就是引用计数策略
IE9已将BOM和DOM对象都转为真正的JavaScript对象
性能问题
IE:根据内存分配量运行垃圾收集器
问题:若脚本在其生命周期中一直保有那么多变量,导致垃圾搜集器频繁的运行
IE7:内存分配量<15%,临界值会加倍
管理内存
确保占用最少的内存可以让页面获得更好的性能
优化的最佳方式:为执行中的代码只保留必要的数据。
解除引用:将值设置为null,适用于全局变量和全局对象的属性
解除引用的真正作用:让值脱离执行环境,以便垃圾收集器下次运行时将其回收