Java中的垃圾收集器如何设置 — JVM系列(十)
JVM中的重要参数我们已经知道了有哪些垃圾收集器,那么它们在JDK中又是如何设置的呢?参数功能UseParNewGC使用ParNew + Serial OldUseSerialGC虚拟机运行在Client模式下的默认值,是Serial + Serial OldUseParallelGC虚拟机运行在Server模式下的默认值,Parallel Scaveng...
·
JVM中的重要参数
我们已经知道了有哪些垃圾收集器,那么它们在JDK中又是如何设置的呢?
参数 | 功能 |
---|---|
UseParNewGC | 使用ParNew + Serial Old |
UseSerialGC | 虚拟机运行在Client模式下的默认值,是Serial + Serial Old |
UseParallelGC | 虚拟机运行在Server模式下的默认值,Parallel Scavenge + Serial Old |
UserParallelOldGC | 使用Parallel Scavenge + Parallel Old,追求吞吐量的的最佳配合 |
UseConcMarkSweepGC | ParNew + CMS + Serial Old组合的收集器,CMS运行期间预留的内存无法满足程序需要,就会出现一次Concurrent Mode Failure失败,这时虚拟机将启动后备预案。临时启用Serial Old收集器来重新进行老年代的垃圾收集。 |
ParallelGCThreads | 指定ParNew收集器的线程数目。 |
MaxGCPauseMillis | Parallel Scavenge中最大垃圾收集停顿时间,毫秒数。 |
GCTimeRatio | Parallel Scavenge中设置吞吐量大小的参数,例如设置为99,允许的最大垃圾收集时间就是:1/(1+99)。 |
UseAdaptiveSizePolicy | Parallel Scavenge中的参数,这是一个开关参数,会动态的调节新生代老年代中的参数,以提供合适的停顿时间或者最大的吞吐量。只需要设置基本的数据内存,如-Xms等。 |
CMSInitiatingOccupancyFraction | 设置CMS收集器在老年代空间被使用多少后触发垃圾收集。默认值为68%。 |
UseCMSCompactAtFullCollection | CMS收集器默认开启,在CMS收集器顶不住要进行FullGC时开启内存碎片的合并整理过程,内存整理的过程是无法并发的。空间碎片问题没有了,但停顿时间不得不变长。设置CMS收集器在完成垃圾收集后再启动一次内存碎片整理。 |
CMSFullGCsBeforeCompaction | 用于设置CMS收集器执行多少次不压缩的FullGC后,跟着来一次带压缩的(默认值为0,表示每次进入Full GC时都进行碎片整理) |
SurvivorRatio | 新生代中Eden区与Survivor区域的比值 |
PretenureSizeThreshold | 大于这个参数的对象将直接进入老年代分配。 |
MaxTenuringThreshold | 晋升到老年代的年龄。 |
HandlePromotionFailure | 是否允许分配担保失败,即老年代的剩余空间不足以应付新生代的整个Eden和Survivor的所有对象都存活的极端情况。 |
更多推荐
已为社区贡献2条内容
所有评论(0)