日期:2014-05-20 浏览次数:20731 次
现在已经有很多java应用跑在多核的机器上了。
并行的GC,也称作吞吐量GC,这种GC把多个CPU都用上了,不让CPU再空转。
YGC的情况,还是使用stop-the-world + 复制算法的GC。
只不过是不再串行,而是充分利用多个CPU,减少GC负荷,增加吞吐量。
如下图,串行YGC和并行YGC的比较:
也是和串行GC一样,在年老区和永久区使用Mark-Sweep-Compact,利用多核增加了吞吐量和减少GC负荷。
对跑在多核的机器上,并且对暂停时间要求不严格的应用。因为频率较低,但是暂停时间较长的Full GC还是会发生的。
在server模式下,并行GC会被自动选择。
或者可以显式选择并行GC,加启动JVM时加上参数: -XX:UseParallelGC