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会尝试用各种手段达到这个时间,比如减小年轻代
网友评论