13_JVM 中常见的垃圾回收器
346字约1分钟
2024-08-10
JVM 中常见的垃圾回收器
新生代和老年代进行垃圾回收时,都是用垃圾回收器进行回收的,不同区域用不同的垃圾回收器
Serial 和 Serial Old 垃圾回收器
Serial
用来回收新生代的垃圾对象,Serial Old
用来回收老年代的垃圾对象
单线程运行,垃圾回收时会停止系统的其他工作线程,系统会直接卡死不动,等他们垃圾回收,现在一般后台 Java
系统几乎不用
ParNew 和 CMS 垃圾回收器
ParNew
一般用在新生代的垃圾回收器,CMS
用在老年代的垃圾回收器
他们都是多线程并发机制,性能更好,一般是线上生产系统的标配组合
G1 垃圾回收器
统一收集新生代和老年代,采用了更加优秀的算法和设计机制
JVM 最让人无奈的痛点:Stop the World
JVM
最大的痛点是在垃圾回收的过程中,为了让垃圾回收器尽快执行完垃圾回收,不能继续创建新对象,JVM
会在后台进入 Stop the World
状态,停止 Java
系统的所有工作线程,也就是会造成系统停顿,不能处理请求