可以想CMS一样,GC操作与应用的线程一起并发执行。
紧凑的空闲内存区间且没有很长的GC停顿时间。需要可预测的gc暂停耗时,不牺牲太多的吞吐量性能,启动后不需要启动更大的java heap。
G1 heap 空间分配:
完全重新分配了原有的heap 区域。
阶段:
初始标记
并发标记
再次标记
清理
适用场景:
full gc 次数太频繁或者时间太长。
对象分配的频率或者代数提升显著变化。
受够了太长的垃圾回收或者内存整理时间(超过0.5-1秒)
可以想CMS一样,GC操作与应用的线程一起并发执行。
紧凑的空闲内存区间且没有很长的GC停顿时间。需要可预测的gc暂停耗时,不牺牲太多的吞吐量性能,启动后不需要启动更大的java heap。
G1 heap 空间分配:
完全重新分配了原有的heap 区域。
阶段:
初始标记
并发标记
再次标记
清理
适用场景:
full gc 次数太频繁或者时间太长。
对象分配的频率或者代数提升显著变化。
受够了太长的垃圾回收或者内存整理时间(超过0.5-1秒)