JVM学习笔记第47天-分区算法
一、分区算法
一般来说,在相同条件下,堆空间越大,一次GC所需要的时间越长,有关GC产生的停顿越长。为了更好的控制GC产生的停顿时间,将一块大的内存区域分割成多个小块,根据目标的停顿时间,每次合理的回收若干个小区间,而不是整个堆空间,从而减少一次GC停顿的时间。
分代算法将按照对象的生命周期长短划分成两个部分,分区算法将整个堆空间划分成连续的不同小区间。
每一个小区间都独立使用,独立回收。这种算法的好处是可以控制一次回收多少个小区间。
二、内存图示
三、特别提示
上述算法只是基本思路,实际GC实现过程要复杂的多,目前发展中的前沿GC都是复合算法,并且并行和并发兼备。