JVM 垃圾收集器的分类
【摘要】 大家好,我是程序员学长,专注分享大数据、算法、java、python等相关知识,欢迎和我一起交流学习。读前福利,最全pdf获取联系我 垃圾收集器的分类 按线程数划分按线程数划分(指的是垃圾收集线程),可以分为串行垃圾收集器和并行垃圾收集器。串行垃圾收集器是指在同一时间段内只允许有一个CPU用于执行垃圾回收操作,此时用户线程被暂停,直到垃圾收集完成。在单 CPU 处理器或者较小的应用内存等硬件...
大家好,我是程序员学长,专注分享大数据、算法、java、python等相关知识,欢迎和我一起交流学习。
垃圾收集器的分类
按线程数划分
按线程数划分(指的是垃圾收集线程),可以分为串行垃圾收集器和并行垃圾收集器。
串行垃圾收集器是指在同一时间段内只允许有一个CPU用于执行垃圾回收操作,此时用户线程被暂停,直到垃圾收集完成。
- 在单 CPU 处理器或者较小的应用内存等硬件平台不是特别优秀的场合,串行垃圾收集器的性能表现可以超过并行垃圾收集器。所以,串行垃圾收集默认被应用在客户端 Client 模式下的 JVM 中。
- 在并发能力比较强的 CPU 上,并行垃圾收集器产生的停顿时间要短于串行垃圾收集器。
和串行收集相反,并行收集可以运用多个 CPU 同时执行垃圾回收,因此提升了应用的吞吐量,不过并行收集仍然和串行收集一样,采用独占式(Stop The World)。
按工作模式划分
按照工作模式,可以分为并发式垃圾回收器和独占式垃圾回收器。
- 并发式垃圾收集器的收集线程与用户线程交替工作,以尽可能的减少应用程序的停顿时间。
- 独占式垃圾收集器的收集线程一旦运行,就会停止所有的用户线程,直到垃圾收集过程结束。
按碎片处理方式划分
按照碎片处理的方式,可以划分为压缩式垃圾收集器和非压缩式垃圾收集器。
- 压缩式垃圾收集器会在收集完成后,对存活对象进行压缩整理,消除回收后的碎片。
- 非压缩式垃圾收集器不会进行碎片整理的操作。
按照工作的内存区间划分
按照工作的内存区间分,可以分为年轻代垃圾收集器和老年代垃圾收集器。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)