日期:2014-05-20  浏览次数:20712 次

J2SE 5.0的HotSpot JVM上的GC学习 - ParallelGC

并行GC

现在已经有很多java应用跑在多核的机器上了。

并行的GC,也称作吞吐量GC,这种GC把多个CPU都用上了,不让CPU再空转。

YGC的并行GC

YGC的情况,还是使用stop-the-world + 复制算法的GC。

只不过是不再串行,而是充分利用多个CPU,减少GC负荷,增加吞吐量。

如下图,串行YGC和并行YGC的比较:

年老区的并行GC

也是和串行GC一样,在年老区和永久区使用Mark-Sweep-Compact,利用多核增加了吞吐量和减少GC负荷。

何时使用并行GC

对跑在多核的机器上,并且对暂停时间要求不严格的应用。因为频率较低,但是暂停时间较长的Full GC还是会发生的。

选择并行GC

在server模式下,并行GC会被自动选择。
或者可以显式选择并行GC,加启动JVM时加上参数: -XX:UseParallelGC