G1和 CMS 的区别 平时工作中大多数系统都使用 CMS ,那么G1相对于 CMS 的区别在: 1.G1在压缩空间方面有优势 2.G1通过将内存空间分成区域( Region )的方式避免内存碎片问题 3. Eden , Survivor , Old 区不再固定、在内存使用效率上来说更灵活 4.G1可以通过设置预期停顿时间( Pause Time )来控制垃圾收集时间避免应用雪崩现象 5.G1在回收内存后会马上同时做合并空闲内存的工作、而 CMS 默认是在 STW ( stop the world )的时候做 6.G1会在 Young GC 中使用、而 CMS 只能在 O 区使用 就目前而言、 CMS 还是默认首选的 GC 策略、可能在以下场景下G1更适合: 1.服务端多核 CPU 、 JVM 内存占用较大的应用(至少大于4G) 2.应用在运行过程中会产生大量内存碎片、需要经常压缩空间 3. 想要更可控、可预期的 GC 停顿周期;防止高并发下应用雪崩现象 full gC 如果对象内存分配速度过快, mixed gc 来不及回收,导致老年代被填满,就会触发一次 ful gc ,G1的 ful gc 算法就是单线程执行的 serial old gc ,会导致异常长时间的暂停时间,需要进行不断的调优,尽可能的避免 full gc
标签:多测师,G1,收集器,gc,内存,GC,杭州,CMS From: https://www.cnblogs.com/xiaoshubass/p/16756685.html