第八章 有关垃圾收集的关键参数

一些命令行参数可以用来选择垃圾收集器,指定堆或代的大小,修改垃圾收集行为,获取垃圾收集统计数据。本章给出一些最常用的参数。有关各种各样参数更多完整的列表和详细信息可以参见第九章。注意:指定的数字可以以“m”或“M”结尾表示兆字节,以“k”或“K”结尾表示千字节,以“g”或“G”结尾表示千兆字节。

垃圾收集器的选择

–XX:+UseSerialGCSerial(串行收集器)
–XX:+UseParallelGCParallel(并行收集器)
–XX:+UseParallelOldGCParallel compacting(并行压缩收集器)
–XX:+UseConcMarkSweepGCConcurrent mark–sweep (CMS)

垃圾收集器统计

–XX:+PrintGC每次垃圾收集时输出基本信息。
–XX:+PrintGCDetails每次垃圾收集时输出更详细的信息。
–XX:+PrintGCTimeStamps在每次垃圾收集事件开始输出时间戳。与–XX:+PrintGC–XX:+PrintGCDetails一同使用。

堆和代的大小

–Xmsn参见第五章堆初始大小,以字节为单位。
–Xmxn参见第五章堆最大值,以字节为单位。
–XX:MinHeapFreeRatio=minimum
and
–XX:MaxHeapFreeRatio=maximum
40 (最小),70 (最大)堆空闲空间与总大小的比值范围。应用在每个代上。例如,如果最小值为30并且某个代的空闲百分比低于30%时,这个代会扩展以保持30%的空闲空间。相似的,如果最大值是60并且空闲百分比超过60%,代会收缩以保持只有60%的空闲空间。
–XX:NewSize=n依赖平台年轻代的初始大小,以字节为单位。
–XX:NewRatio=n客户端2,服务器8年轻代和年老代的比例。例如,如果n是3,比例是1:3,Eden和生还者区的加和是年轻代和年老代大小总和的1/4。
–XX:SurvivorRatio=n32每个生还者区与Eden区的比例。例如,如果n是7,每个生还者区是年轻代的1/9(不是1/8,因为有2个生还者区)。
–XX:MaxPermSize=n依赖平台持久代的最大值。

并行和并行压缩收集器的选项

–XX:ParallelGCThreads=nCPU的个数垃圾收集的线程数。
–XX:MaxGCPauseMillis=n期望垃圾收集器的暂停时间小于等于n。
–XX:GCTimeRatio=n99设置垃圾收集时间占总时间的目标为 1/(1+n)。

CMS收集器的选项

–XX:+CMSIncrementalMode禁用启用增量模式。并行阶段是增量的,并行阶段周期性暂停以释放处理器给应用程序。
–XX:+CMSIncrementalPacing禁用是否允许CMS处理器基于应用程序行为自动放弃之前的处理器。
–XX:ParallelGCThreads=nCPU的个数年轻代并行收集和年老代并行收集部分的线程数。
05-23 08:00