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

JVM 的垃圾回收器

新生代回收器

通性
  • 会触发StW,暂停所有应用线程
  • 复制算法
Serial
  • 单线程回收
  • 适合单线程系统
ParNew
  • 多线程回收
  • 优先保证响应速度,降低 STW(STW 越大,执行垃圾回收的时间越长,回收的垃圾越多,减少垃圾回收的频率)
  • 适合低延迟系统,搭配 CMS 使用
Parallel Scavenge
  • 多线程回收
  • 支持自适应策略,自动调节堆分区的大小和晋升年龄,优先保障吞吐量
  • 适合大规模密集型任务等吞吐量较高的场景

老年代回收器

Serial Old
  • 单线程
  • 标记整理
  • 配合 Serial 使用
CMS
  • 多线程
  • 标记清除
    • 初始标记:暂停用户线程,标记GC Roots对象直接关联的对象
    • 并发标记:并发标记所有垃圾对象
    • 重新标记:对并发标记时产生的错标、漏标,重新标记
    • 并发清理:并发删除垃圾对象
  • 配合 ParNew 使用
Parallel Old
  • 多线程
  • 标记整理
  • 配合 Parallel Scavenge 使用
G1
  • 将内存分为多个大小相等的 Region 区域,通过堆空间 /2048 得到
  • Young GC:将 Eden 和 Survivor 中存活对象复制到新 Survivor 中,年龄 +1,清空这些区域
  • Humongous 区:对象大小超过 region 的一半,直接放入老年代的 Humongous 区
  • Mixed GC:新生代全部+老年代存活度低的区域回收,新生代转移到一个区,老年代转移到一个区
    • 初始标记、并发标记、最终标记
    • 筛选回收:对各个region的回收价值和成本排序,根据用户期望停顿时间和回收计划,选择 region 回收
  • Full GC:对所有对象使用标记整理

相关文章:

  • 基于aspnet,微信小程序,mysql数据库,在线微信小程序汽车故障预约系统
  • 使用Arduino UNO复活电脑的风扇
  • 【第三十七周】SigLip:Sigmoid Loss for Language Image Pre-Training
  • 汽车软件刷写 APP SBL PBL概念
  • RabbitMQ 断网自动重连失效
  • Newtonsoft Json序列化数据不序列化默认数据
  • Python基于Django的主观题自动阅卷系统【附源码、文档说明】
  • 699SJBH库存系统V2
  • TIGER - 一个轻量高效的语音分离模型,支持人声伴奏分离、音频说话人分离等 支持50系显卡 本地一键整合包下载
  • AI练习:指纹
  • GO语言基础4 Errors 报错
  • 线程池优雅关闭的哲学
  • 动态库加载的底层原理
  • 10G/25G PCS only mode for CoaXPress Over Fiber
  • 基于ICEEMDAN-SSA-BP的混合预测模型的完整实现过程
  • 【排序算法】冒泡排序详解--附详细流程代码
  • 对WireShark 中的EtherCAT抓包数据进行解析
  • MongoDB 错误处理与调试完全指南:从入门到精通
  • 黑马k8s(十六)
  • 积木高楼
  • 网络设计的原理/深圳关键词推广整站优化
  • 网站制作交流论坛/百度推广一个月多少钱
  • 招聘网站建设计划书/电商网站建设制作
  • wordpress制作表单/seo 知乎
  • 房山区网站建设/郑州seo排名哪有
  • 怎样做自己的微商网站/视频剪辑培训