您的位置:首页 > 其它

JVM垃圾回收器常用参数介绍

2016-03-16 18:50 399 查看
1、 与串行回收器相关的参数

l -XX:+UseSerialGC:在新生代和老年代使用的串行收集器

l -XX:SurvivorRatio:设置eden区大小和survivor区大小的比例

l -XX:PretenureSizeThreshold:设置大对象直接进入老年代的阀值,当对象的大小超过这个值时,将直接在老年代分配

l -XX:MaxTenuringThreshold:设置对象进入老年代的年龄的最大值,每一次MinorGC后,对象年龄就加1,任何大于这个年龄的对象,一定会进入老年代

2、 与并行GC相关的参数

l -XX:+UseParNewGC:在新年代使用并行收集器

l -XX:+UseParallelOldGC:老年代使用并行回收收集器

l -XX:ParallelGCThreads:设置用于垃圾回收的线程数。通常情况下可以和CPU数量相等,但在CPU数量比较多的情况下,设置相对较小的数值也是合理的。

l -XX:MaxGCPauseMillis:设置吞吐量大小,它的值是一个大于0的整数,收集器在工作时,会调整Java堆大小或者其他一些参数,尽可能地把停顿时间控制在MaxGCPauseMillis以内。

l -XX:GCTimeRatio:设置吞吐量大小,它的值是一个0到100之间的整数,假设GCTimeRatio的值为n,那么系统将花费不超过1/(1+n)的时间用于垃圾回收

l -XX:+UseAdaptiveSizePolicy:打开自适应GC策略,在这种模式下,新生代的大小、eden和survivior的比例、晋升老年代的对象年龄等参数会被自动调整,以达到在堆大小、吞吐量和停顿时间之间的平衡点。

3、 与CMS回收器相关的参数

l -XX:+UseConcMarkSweepGC:新生代使用并行收集器,老年代使用CMS+串行收集器

l -XX:ParallelCMSThreads:设定CMS的线程数量

l -XX:CMSInitiationgOccupancyFraction:设置CMS收集器在老年代空间被占用多少后触发,默认为68%

l -XX:+UseCMSCompactAtFullCollection:设置CMS收集器在完成垃圾收集后是否要进行一次内存碎片的整理

l -XX:CMSFullGCsBeforeCompaction:设定进行多少次CMS垃圾回收后,进行一次内存压缩

l -XX:+CMSClassUnloadingEnabled:允许对类元数据区进行回收

l -XX:CMSInitiatingPermOccupancyFraction:当永久区占用率达到这一百分比时,启动CMS回收(前提是-XX:+CMSClassUnloadingEnabled激活了)

l -XX:UseCMSInitiatingOccupancyOnly:表示只在到达阀值的时候才进行CMS回收

l -XX:+CMSIncrementalMode:使用增量模式,比较适合单CPU。增量模式在JDK8中标记为废弃,并且将在JDK9中彻底移除

4、 与G1回收器相关的参数

l -XX:+UseG1GC:使用G1回收器

l -XX:MaxGCPauseMillis:设置最大垃圾收集停顿时间

l -XX:GCPauseIntervalMillis:设置停顿间隔时间

5、 TLAB相关

l -XX:+UseTLAB:开启TLAB分配

l -XX:+PrintTLAB:打印TLAB相关分配信息

l -XX:TLABSize:设置TLAB大小

l -XX:+ResizeTLAB:自动调整TLAB大小

6、 其他参数

l -XX:+DisableExplicitGC:禁用显式GC

l -XX:+ExplicitGCInvokesConcurrent:使用并发方式处理显式GC
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: