GC常用参数

GC常用参数

• -Xmn -Xms -Xmx -Xss     // 年轻代 最小堆 最大堆 栈空间
• -XX:+UseTLAB     // 使用TLAB,默认打开
• -XX:+PrintTLAB     // 打印TLAB的使用情况
• -XX:TLABSize // 设置TLAB大小
• -XX:+DisableExplictGC // System.gc()不管用 ,FGC
• -XX:+PrintGC  // 打印GC日志
• -XX:+PrintGCDetails    // 打印GC日志详情
• -XX:+PrintHeapAtGC    // 每一次GC后都打印堆信息
• -XX:+PrintGCTimeStamps    // 打印GC时间戳
• -XX:+PrintGCApplicationConcurrentTime     // (低)打印应用程序时间
• -XX:+PrintGCApplicationStoppedTime     //(低)打印暂停时长
• -XX:+PrintReferenceGC (重要性低)记录回收了多少种不同引用类型的引用
• -verbose:class     // 类加载详细过程
• -XX:+PrintVMOptions    // 打印VM
• -XX:+PrintFlagsFinal    //  输出所有 XX 参数的值
•  -XX:+PrintFlagsInitial // 查看所有 XX 参数的默认值
• -Xloggc:opt/log/gc.log    // 打印gc日志到文件
• -XX:MaxTenuringThreshold     // 升代年龄,最大值15
• -XX:PreBlockSpin     // 控制多线程自旋锁优化的自旋次数

Parallel常用参数

• -XX:SurvivorRatio    // Eden与Survivor的占用比例。例如8表示,一个survivor区占用 1/8 的Eden内存,即1/10的新生代内存
• -XX:PreTenureSizeThreshold     // 大对象到底多大
• -XX:MaxTenuringThreshold    // 设置对象在新生代中最大的存活次数,最大值15,并行回收机制默认为15,CMS默认为4
• -XX:+ParallelGCThreads     // 并行收集器的线程数,同样适用于CMS,一般设为和CPU核数相同
• -XX:+UseAdaptiveSizePolicy     // 自动选择各区大小比例

CMS常用参数

• -XX:+UseConcMarkSweepGC    // 使用CMS收集器收集老年代
• -XX:ParallelCMSThreads     // CMS线程数量
• -XX:CMSInitiatingOccupancyFraction     // 使用多少比例的老年代后开始CMS收集,默认是68%(近似值),如果频繁发生SerialOld卡顿,应该调小,(频繁CMS回收)
• -XX:+UseCMSCompactAtFullCollection     // 在FGC时进行压缩
• -XX:CMSFullGCsBeforeCompaction     // 多少次FGC之后进行压缩
• -XX:+CMSClassUnloadingEnabled    // 老年代启用CMS,但默认是不会回收永久代(Perm)的。此处对Perm区启用类回收,防止Perm区内存满。(需要与+CMSPermGenSweepingEnabled同时启用)
• -XX:CMSInitiatingPermOccupancyFraction     // 达到什么比例时进行Perm回收
• -XX:GCTimeRatio     // 设置GC时间占用程序运行时间的百分比
• -XX:MaxGCPauseMillis     // 停顿时间,是一个建议时间,GC会尝试用各种手段达到这个时间,比如减小年轻代

你可能感兴趣的:(GC常用参数)