一、Trace跟踪参数
-verbose:gc
:输出虚拟机中GC的详细情况
-XX:+PrintGC
:与 -verbose:gc 是一样的,可以认为-verbose:gc 是 -XX:+PrintGC的别名
-XX:+PrintGCDetails
: 打印GC详细信息
-XX:+PrintGCTimeStamps
:打印GC时间戳-XX:+TraceClassLoading
:监控类的加载二、堆分配参数
-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%时间做GC - CMS收集器
-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回收