当前位置: 首页 > news >正文

V8的垃圾回收器

垃圾回收算法

  1. 遍历GC Root(window,DOM,栈等)标记活动对象和非活动对象
  2. 回收非活动对象所占据的内存
  3. 内存整理

新生代和老生代

在V8中,会把堆分成新生代和老生代两个区域

  • 新生代通常只支持1~8M的容量,存放生存时间短的对象,由副垃圾回收器负责。
  • 老生代通常容量很大,存放生存时间长的对象,由主垃圾回收器负责。

Scavenge 算法(新生代)

在新生代中被划分为对象区和空闲区,新加入的对象全部加入对象区,当对象区快被写满时,就要进行一次垃圾回收操作。

233526686-e6ff7885-80c1-4fa5-86bf-b3367affc303

回收过程

因为要做频繁的复制操作,所以新生代一般设置容量较小。

副垃圾回收器还会采用对象晋升策略,移动两次仍然还存在就把它移动到老生代中去。

233526851-25448ec7-81e2-46c6-af5e-d59afaeed3aa

  1. 垃圾标记
  2. 副垃圾回收器把活动对象复制到空闲区,整理
  3. 两个区做一次交换,对象区变成空闲区,空闲区变成对象区
  4. 抹掉空闲区

标记算法(老生代)

  • 标记-清除从根开始遍历,标记那些不能被到达的元素,直接清除掉。会出现内存碎片所以接下来要整理操作。
  • 标记-整理标记活动对象,将它们移动到一端,然后清理掉后面的内存。

垃圾回收器的优化

垃圾回收是运行在主线程上的,所以进行垃圾回收时,会造成卡顿。

  • 并行回收,开多个线程同时进行
  • 增量回收,将垃圾收集分解成更小的颗粒,穿插的进行,一次只进行一小部分操作。
  • 并发回收,在主线程内,辅助线程可以在后台完成垃圾回收操作。
http://www.jsqmd.com/news/42873/

相关文章:

  • 2025留学中介哪家好?厚仁/新通等5大品牌,多国联申/offer保障/名校申请/求职赋能全覆盖
  • 4th Universal Cup
  • 2025 最新滚珠丝杠厂家 推荐!重负载 / 精密 / 轧制 / 研磨滚珠丝杠全品类榜单,国产优质品牌实力测评与选购指南
  • 20232328 2025-2026-1 《网络与系统攻防技术》实验六实验报告
  • 这两个开源项目在世界互联网大会乌镇峰会获奖
  • #2338. [22NOIP十连 Day 1] 数列
  • 20232308 2025-2026-1 《网络与系统攻防技术》实验六实验报告
  • directory linux
  • deepin linux 安装
  • dbca linux
  • 智慧建筑工地传感器参数一览表
  • 2025靠谱留学机构推荐TOP5!美国/英国/澳洲多国申请,高录取率机构榜单
  • 04-import 和 export
  • 藜民百信消费帮扶平台:牵手 832 平台获殊荣,让兴和县农产品出圈、农户腰包鼓
  • Ollama 部署 Qwen3:0.6B 模型操作记录
  • LiveGBS GB28181监控视频平台中如何配置文字文印或图片水印,将水印叠加到播放器或视频内容中
  • Linux 项目部署
  • curtime在MySQL触发器中的使用方法
  • Frida Hook Android手册
  • curtime与now函数在MySQL中的区别
  • Trick 总结
  • 2025年最新出炉:车载电源十大品牌性能排行榜,光伏电源/氢能源车载直流转换器/新能源车载直流转换器/高功率密度电源/军用电源产品排行
  • 成都恒利泰PIN-to-PIN 国产版 HT-LFCW-5500+
  • 身份认证状态的存储与传递( Spring Boot篇 )
  • 国标GB28181算法算力平台EasyGBS打造园区智能化安防监控高效解决方案
  • 20232306 2025-2026-1 《网络与系统攻防技术》实验六实验报告
  • 数据库基础(lab5:单表查询 三)
  • ubuntu18解决 libc.so.6: version `GLIBC_2.28‘ not found
  • current linux
  • curl linux 命令