一、Trace跟踪参数
-verbose:gc:输出虚拟机中GC的详细情况-XX:+PrintGC:与 -verbose:gc 是一样的,可以认为-verbose:gc 是 -XX:+PrintGC的别名-XX:+PrintGCDetails: 打印GC详细信息
PrintGCDetails.png
-XX:+PrintGCTimeStamps:打印GC时间戳-XX:+TraceClassLoading:监控类的加载
TraceClassLoading.png
二、堆分配参数
-Xmx –Xms:指定最大堆和最小堆-Xmn: 设置新生代大小-XX:NewRatio: 新生代(eden+2*s)和老年代(不包含永久区)的比值 4 表示 新生代:老年代=1:4,即年轻代占堆的1/5-XX:SurvivorRatio :设置两个Survivor区和eden的比 8表示 两个Survivor :eden=2:8,即一个Survivor占年轻代的1/10-XX:+HeapDumpOnOutOfMemoryError:OOM时导出堆到文件-XX:+HeapDumpPath:导出OOM的路径
-Xmx20m -Xms5m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=d:/a.dump
三、永久区分配参数
-XX:PermSize -XX:MaxPermSize:设置永久区的初始空间和最大空间
四、栈分配参数
-Xss通常只有几百K,决定了函数调用的深度,每个线程都有独立的栈空间,局部变量、参数 分配在栈上
五、GC参数
Serial收集器
-XX:+UseSerialGC:新生代、老年代使用串行回收,新生代复制算法,老年代标记-压缩ParNew收集器
-XX:+UseParNewGC:新生代并行,老年代串行-XX:ParallelGCThreads:限制线程数量Parallel Scavenge收集器
-XX:+UseParallelGC:使用Parallel收集器+ 老年代串行-XX:+UseParallelOldGC:使用Parallel收集器+ 老年代并行-XX:MaxGCPauseMills:最大停顿时间,单位毫秒,GC尽力保证回收时间不超过设定值-XX:GCTimeRatio:0-100的取值范围,垃圾收集时间占总时间的比,默认99,即最大允许1%时间做GCCMS收集器
-XX:+UseConcMarkSweepGC:老年代收集器(新生代使用ParNew)
-XX:+UseSerialGC:在新生代和老年代使用串行收集器-XX:SurvivorRatio:设置eden区大小和survivior区大小的比例-XX:NewRatio:新生代和老年代的比-XX:+UseParNewGC:在新生代使用并行收集器-XX:+UseParallelGC :新生代使用并行回收收集器-XX:+UseParallelOldGC:老年代使用并行回收收集器-XX:ParallelGCThreads:设置用于垃圾回收的线程数-XX:+UseConcMarkSweepGC:新生代使用并行收集器,老年代使用CMS+串行收集器-XX:ParallelCMSThreads:设定CMS的线程数量-XX:CMSInitiatingOccupancyFraction:设置CMS收集器在老年代空间被使用多少后触发-XX:+UseCMSCompactAtFullCollection:设置CMS收集器在完成垃圾收集后是否要进行一次内存碎片的整理-XX:CMSFullGCsBeforeCompaction:设定进行多少次CMS垃圾回收后,进行一次内存压缩-XX:+CMSClassUnloadingEnabled:允许对类元数据进行回收-XX:CMSInitiatingPermOccupancyFraction:当永久区占用率达到这一百分比时,启动CMS回收-XX:UseCMSInitiatingOccupancyOnly:表示只在到达阀值的时候,才进行CMS回收
作者:小村医
链接:https://www.jianshu.com/p/b9737a77cee6