* 垃圾收集器 * 单线程: * serial垃圾回收器(新生代) * serial old垃圾回收器(老年代) * 多线程: * ParNew(新生代) * CMS(老年代) * G1 * 采用ParNew+CMS或多或少会产生stop the world影响; * 统一收集新生代和老年代,可以控制stop the word的时间 * * 单线程的垃圾回收器,垃圾回收过程都会stop world; * 多线程的不管是新生代和老年代GC都会stop world; * * ParNew回收垃圾过程: * 1)利用复制算法,讲eden区和其中一个suvivor区的存活对象复制到另外一个suvivor区,然后情况eden区其中一个suvivor区 * 2)回收过程全程会stop world * * CMS回收垃圾过程: * 分为4个阶段: * 1)初始标记(stop the world) * 2)并发标记 * 3)重新标记(stop the world) * 4)并发清理 * * 1)初始标记 * 标记的都是直接引用GC ROOT的对象,速度非常快 * 2)并发标记 * 系统同时运行,从GC ROOT开始追踪所有对象,标记 * 3)重新标记 * 把并发标记过程中中产生的少数新的对象和垃圾标记出来的,改动的对象标记少,速度非常快 * 4)并发清理
JVM各种垃圾收集器总结大全
最新推荐文章于 2024-02-28 08:43:20 发布