JVM 垃圾收集器的分类

举报
程序员学长 发表于 2022/04/20 23:03:52 2022/04/20
【摘要】 大家好,我是程序员学长,专注分享大数据、算法、java、python等相关知识,欢迎和我一起交流学习。读前福利,最全pdf获取联系我 垃圾收集器的分类 按线程数划分按线程数划分(指的是垃圾收集线程),可以分为串行垃圾收集器和并行垃圾收集器。串行垃圾收集器是指在同一时间段内只允许有一个CPU用于执行垃圾回收操作,此时用户线程被暂停,直到垃圾收集完成。在单 CPU 处理器或者较小的应用内存等硬件...

大家好,我是程序员学长,专注分享大数据、算法、java、python等相关知识,欢迎和我一起交流学习。

读前福利,最全pdf获取

联系我

垃圾收集器的分类

按线程数划分

按线程数划分(指的是垃圾收集线程),可以分为串行垃圾收集器和并行垃圾收集器。

image-20220419221024170.png

串行垃圾收集器是指在同一时间段内只允许有一个CPU用于执行垃圾回收操作,此时用户线程被暂停,直到垃圾收集完成。

  • 在单 CPU 处理器或者较小的应用内存等硬件平台不是特别优秀的场合,串行垃圾收集器的性能表现可以超过并行垃圾收集器。所以,串行垃圾收集默认被应用在客户端 Client 模式下的 JVM 中。
  • 在并发能力比较强的 CPU 上,并行垃圾收集器产生的停顿时间要短于串行垃圾收集器。

和串行收集相反,并行收集可以运用多个 CPU 同时执行垃圾回收,因此提升了应用的吞吐量,不过并行收集仍然和串行收集一样,采用独占式(Stop The World)。

按工作模式划分

按照工作模式,可以分为并发式垃圾回收器和独占式垃圾回收器。

  • 并发式垃圾收集器的收集线程与用户线程交替工作,以尽可能的减少应用程序的停顿时间。
  • 独占式垃圾收集器的收集线程一旦运行,就会停止所有的用户线程,直到垃圾收集过程结束。

按碎片处理方式划分

按照碎片处理的方式,可以划分为压缩式垃圾收集器和非压缩式垃圾收集器。

  • 压缩式垃圾收集器会在收集完成后,对存活对象进行压缩整理,消除回收后的碎片。
  • 非压缩式垃圾收集器不会进行碎片整理的操作。

按照工作的内存区间划分

按照工作的内存区间分,可以分为年轻代垃圾收集器和老年代垃圾收集器。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。