JVM深入学习(二十二)-7种垃圾回收器总结

简介: Serial,Serial Old,ParaNew,Parallel Scavenge,Parallel Old,CMS,G1其中垃圾回收器总结

学习完了7种垃圾回收器之后,总结一下

为啥是7种?

Serial

Serial Old

ParaNew

Parallel Scavenge

Parallel Old

CMS

G1

共7种,其中主要学习的是Parallel + CMS +G1

垃圾回收器

并行/串行/并发分类

针对回收位置

回收算法

主要思想

适用场景

Serial

串行

新生代

复制算法

低停顿时间

硬件资源匮乏,单核cpu情况下

Serial Old

串行

老年代

标记-压缩算法

低停顿时间

硬件资源匮乏,单核cpu情况下

ParNew

并行

新生代

复制算法

低停顿时间

多核cpu场景下替代Serial

Parallel Scavenge

并行

新生代

复制算法

高吞吐量

jdk8默认垃圾回收器,多用于服务端

Parallel Old

并行

老年代

标记-压缩算法

高吞吐量

jdk8默认垃圾回收器,多用于服务端

CMS

并行/并发

老年代

标记-清除算法

低停顿时间

适用于低停顿时间的场景,如移动端

G1

并行/并发

新生代/老年代

复制算法/标记-压缩算法

高吞吐量的前提下,尽量保证低停顿时间

适用于服务端

jdk9之后默认垃圾回收器

1.1 垃圾回收器的选择

7种垃圾回收器以及他们的组合关系如何选择:

没有完美的垃圾回收器,只能针对不同的场景不同的业务来选择垃圾回收器

  1. 当堆内存较小(100M以下)选择串行垃圾回收器
  2. 服务器硬件为单核,并且不要求低停顿时间的时候,选择串行垃圾回收器
  3. 多核cpu,要求高吞吐量选择并行垃圾回收器或者jvm默认垃圾回收器
  4. 多核cpu,要求低延迟时选择并发垃圾回收器
  5. G1是目前大多数项目可以使用的最优解,特殊场景除外.
目录
相关文章
|
2月前
|
存储 算法 Oracle
极致八股文之JVM垃圾回收器G1&ZGC详解
本文作者分享了一些垃圾回收器的执行过程,希望给大家参考。
|
3月前
|
存储 算法 Java
Java面试题:深入探究Java内存模型与垃圾回收机制,解释JVM中堆内存和栈内存的主要区别,谈谈对Java垃圾回收机制的理解,Java中的内存泄漏及其产生原因,如何检测和解决内存泄漏问题
Java面试题:深入探究Java内存模型与垃圾回收机制,解释JVM中堆内存和栈内存的主要区别,谈谈对Java垃圾回收机制的理解,Java中的内存泄漏及其产生原因,如何检测和解决内存泄漏问题
53 0
|
3月前
|
存储 算法 安全
Java面试题:Java内存模型及相关知识点深度解析,Java虚拟机的内存结构及各部分作用,详解Java的垃圾回收机制,谈谈你对Java内存溢出(OutOfMemoryError)的理解?
Java面试题:Java内存模型及相关知识点深度解析,Java虚拟机的内存结构及各部分作用,详解Java的垃圾回收机制,谈谈你对Java内存溢出(OutOfMemoryError)的理解?
54 0
|
4月前
|
缓存 Java
《JVM由浅入深学习九】 2024-01-15》JVM由简入深学习提升分(生产项目内存飙升分析)
《JVM由浅入深学习九】 2024-01-15》JVM由简入深学习提升分(生产项目内存飙升分析)
42 0
|
6天前
|
存储 算法 Java
深入解析 Java 虚拟机:内存区域、类加载与垃圾回收机制
本文介绍了 JVM 的内存区域划分、类加载过程及垃圾回收机制。内存区域包括程序计数器、堆、栈和元数据区,每个区域存储不同类型的数据。类加载过程涉及加载、验证、准备、解析和初始化五个步骤。垃圾回收机制主要在堆内存进行,通过可达性分析识别垃圾对象,并采用标记-清除、复制和标记-整理等算法进行回收。此外,还介绍了 CMS 和 G1 等垃圾回收器的特点。
18 0
深入解析 Java 虚拟机:内存区域、类加载与垃圾回收机制
|
3月前
|
Java
Jinfo 查看 jvm 配置及使用 Jstat 查看堆内存使用与垃圾回收
Jinfo 查看 jvm 配置及使用 Jstat 查看堆内存使用与垃圾回收
56 5
|
3月前
|
存储 算法 Java
JVM 垃圾回收算法与垃圾回收器
JVM 垃圾回收算法与垃圾回收器
38 3
|
3月前
|
监控 Java 运维
开发与运维收集问题之jstat命令查看JVM垃圾回收情况如何解决
开发与运维收集问题之jstat命令查看JVM垃圾回收情况如何解决
25 1
|
2月前
|
算法 Java 应用服务中间件
探索JVM垃圾回收算法:选择适合你应用的最佳GC策略
探索JVM垃圾回收算法:选择适合你应用的最佳GC策略
|
3月前
|
弹性计算 运维 Java
Serverless 应用引擎使用问题之JVM进行垃圾回收时重启,该如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。