垃圾回收机制
- Garbage Collection ==》 G c
- JS中内存的分配和回收都是自动的,内存在不使用的时候会被JS引擎/垃圾回收程序会自动回收
- 内存泄漏: 不再使用的内存,没有被及时释放
全局变量一般不会回收(关掉页面回收)
- 全局变量一般不会回收(关掉页面回收)
局部变量
- 局部变量的值,一般情况下,不用了,会被自动回收
回收机制
1.引用计数法 淘汰
- IE采用的引用技术算法,定义 内存不再使用的标准很简单,就是看一个对象是否有指向它的引用.
算法:
- 跟踪记录每个值被引用的次数.
- 这个值如果被引用了一次,那么就记录次数1
- 多次引用会累加
- 如减少一个引用就减1
- 如果引用次数为0,则释放内存
引用计数法缺陷-循环引用-内存泄漏
2.标记清除法
- 标记阶段: 标记内存为活动对象和非活动对象
- 清除阶段: 回收非活动对象的内存,也就是销毁清除非活动对象.
- 注意: 优化:重新排列座位(内存)造成问题:内存碎片化
- 优化:重新排列座位(内存)===>标记整理算法