js 内存管理

来源:互联网 发布:tensorflow官网镜像 编辑:程序博客网 时间:2024/06/04 18:48

内存生命周期

不管什么程序语言,内存生命周期基本是一致的:
1. 分配你所需要的内存
2. 使用分配到的内存(读、写)
3. 不需要时将其释放\归还

垃圾回收

  1. 引用计数垃圾收集
    此算法把“对象是否不再需要”简化定义为“对象有没有其他对象引用到它”。如果没有引用指向该对象(零引用),对象将被垃圾回收机制回收。
    限制:无法处理循环引用
  2. 标记-清除算法
    这个算法假定设置一个叫做根(root)的对象(在Javascript里,根是全局对象)。定期的,垃圾回收器将从根开始,找所有从根开始引用的对象,然后找这些对象引用的对象……从根开始,垃圾回收器将找到所有可以获得的对象和所有不能获得的对象。
    从2012年起,所有现代浏览器都使用了标记-清除垃圾回收算法。
    限制: 那些无法从根对象查询到的对象都将被清除
0 0
原创粉丝点击