JVM的Parallel(吞吐量)垃圾收集器是以达到一定的吞吐量为目标的收集器,适合运行在多核处理器上的后台应用。Parallel收集器使用了标记-压缩算法,适用于需要低停顿时间的服务器端应用。
Parallel GC的最佳参数取决于具体应用的工作负载和目标。以下是一些常用的JVM参数,可以用来调整Parallel GC的行为:
-
-XX:+UseParallelGC
: 启用Parallel GC,用于新生代。 -
-XX:+UseParallelOldGC
: 启用Parallel GC,用于整个GC堆(包括新生代和老年代)。 -
-XX:ParallelGCThreads=<N>
: 设置用于垃圾收集的线程数,默认情况下这个值会根据CPU核心数自动设置。 -
-XX:MaxGCPauseMillis=<N>
: 设置GC的最大暂停时间(目标时间),以毫秒为单位。 -
-XX:GCTimeRatio=<N>
: 设置垃圾收集时间占程序运行时间的比例,默认为99,即1%的时间用于GC。 -
-Xmx
和-Xms
: 设置JVM堆的最大和最小大小,确保堆大小对GC影响最小,减少GC频率。
示例JVM启动参数:
java -Xmx2g -Xms2g -XX:+UseParallelGC -XX:ParallelGCThreads=8 -XX:MaxGCPauseMillis=100 -XX:GCTimeRatio=4 -jar your-application.jar