JVM学习笔记第47天-分区算法

一、分区算法

一般来说,在相同条件下,堆空间越大,一次GC所需要的时间越长,有关GC产生的停顿越长。为了更好的控制GC产生的停顿时间,将一块大的内存区域分割成多个小块,根据目标的停顿时间,每次合理的回收若干个小区间,而不是整个堆空间,从而减少一次GC停顿的时间。

分代算法将按照对象的生命周期长短划分成两个部分,分区算法将整个堆空间划分成连续的不同小区间。

每一个小区间都独立使用,独立回收。这种算法的好处是可以控制一次回收多少个小区间。

二、内存图示

JVM学习笔记第47天-分区算法

三、特别提示

上述算法只是基本思路,实际GC实现过程要复杂的多,目前发展中的前沿GC都是复合算法,并且并行和并发兼备。