Javascript 垃圾回收方法

标记清除(mark and sweep)

  • 这是 JavaScript 最常见的垃圾回收方式,当变量进入执行环境的时候,比如函数中声明一个变量,垃圾回收器将其标记为“进入环境”,当变量离开环境的时候(函数执行结束)将其标记为“离开环境”
  • 垃圾回收器会在运行的时候给存储在内存中的所有变量加上标记,然后去掉环境中的变量以及被环境中变量所引用的变量(闭包),在这些完成之后仍存在标记的就是要删除的变量了

引用计数(reference counting)

  • 在低版本 IE 中经常会出现内存泄露,很多时候就是因为其采用引用计数方式进行垃圾回收。引用计数的策略是跟踪记录每个值被使用的次数,当声明了一个 变量并将一个引用类型赋值给该变量的时候这个值的引用次数就加 1,如果该变量的值变成了另外一个,则这个值得引用次数减 1,当这个值的引用次数变为 0 的时 候,说明没有变量在使用,这个值没法被访问了,因此可以将其占用的空间回收,这样垃圾回收器会在运行的时候清理掉引用次数为 0 的值占用的空间

参考链接 内存管理-MDN

最新文章

  1. GIS规划应用——基于哈夫模型的GIS服务区分析
  2. sg函数与博弈论
  3. dbca:Exception in thread "main" java.lang.UnsatisfiedLinkError: get
  4. Cocos2d 中的Sprite大小调整问题
  5. 通过获取DNS解析的未转义主机名,区分测试环境和正式环境代码
  6. iOS初学者的AppStore上架应用"菜谱大师"开源了!
  7. IP地址格式控制
  8. MySQL优化技巧之五(mysql查询性能优化)
  9. Android中使用WebView与JS交互全解析
  10. 大数A-B
  11. nginx url 重写 [转]
  12. vim下高级操作以及文本替换命令
  13. Oracle拉进sqlserver表声明的建设
  14. python2与python3
  15. C语言函数不定参数实现方式
  16. C# 远程获取图片二进制
  17. LodopFuncs.js和CLodopFuncs.js区别和联系
  18. VUE—打印(原生态网页打印)
  19. day14 闭包
  20. MySQL聚合函数、控制流程函数

热门文章

  1. 在校生如何面向面试地学习Java
  2. 领扣(LeetCode)翻转二叉树 个人题解
  3. Winform-最大化窗口
  4. 小白学 Python 爬虫(8):网页基础
  5. ip地址计算
  6. Git实战指南----跟着haibiscuit学Git(第二篇)
  7. 【数据结构】之链表(C语言描述)
  8. 【Android - 控件】之MD - CardView的使用
  9. 英语口语考试资料Friendships
  10. Chapter 07-Basic statistics(Part4 t-tests&&nonparametric tests of group difference)