参考资料:《深入理解Java虚拟机:JVM高级特性与最佳实践》周志明 著
参数 | 描述 |
verbose:gc | 启动JVM的时候,输出JVM里面的GC信息 |
-XX:+printGC | 打印GC信息 |
-XX:+PrintGCDetails | 打印GC的详细信息 |
-XX:+PrintGCTimeStamps | 打印GC发生的时间 |
-Xloggc | 指定输出GC日志的文件位置 |
-XX:+PrintHeapAtGC | 每次GC后,都打印堆信息 |
-XX:+TraceClassLoading | 监控类的加载,看到哪些类被加载 |
-XX:+PrintClassHistogram | 跟踪参数:序号,实例数量,总大小,类型;[C char类型 , [B byte类型 |
-Xmx | 堆最大值 |
-Xms | 堆最小值 |
-Xmn | 新生代大小 |
-Xss | 栈大小 |
-XX:PermSize | 永久代大小(JDK1.8以前版本) |
-XX:MaxPermSize | 永久代最大值(JDK1.8以前版本) |
-XX:SurvivorRatio | 新生代中S区与E区比例,默认值为8 |
-XX:NewRatio | 新生代与老年代比例 |
-XX:HeapDumpOnOutOfMemoryError | 发生OOM,导出堆信息到文件中 |
-XX:HeapDumpPath | 导出堆信息的文件路径 |
-XX:OnOutOfMemoryError | 发生OOM时,执行一个指定的脚本 |
-XX:UseSerialGC | JVM运行时在Client模式下的默认值,使用Serial + SerialOld垃圾收集器组合进行GC |
-XX:UseParNewGC | 使用ParNew + SerialOld垃圾收集器组合进行GC |
-XX:UseConcMarkSweepGC | 使用ParNew + CMS + SerialOld垃圾收集器组合进行GC.SerialOld是作为CMS出现Concurrent Mode Failure失败后的备用垃圾收集器 |
-XX:UseParallelGC | JVM运行时在Server模式下的默认值,使用Parallel Scavenge + SerialOld垃圾收集器组合进行GC |
-XX:UseParallelOldGC | 使用Parallel Scavenge + Parallel Old垃圾收集器组合进行GC |
-XX:PretenureSizeThreshold | 新生代晋升到老年代的对象大小,大于设置值的对象直接在老年代进行分配 |
-XX:MaxTenuringThreshold | 新生代晋升到老年代的"年龄";新生代中对象每Minor GC后依然存活,"年龄"就加1,超过此阈值就直接进入老年代 |
-XX:UseAdaptiveSizePolicy | 动态调整Java Heap中各个区域的大小以及进入老年代的年龄 |
-XX:HandlePromotionFailure | 是否允许分配担保失败(老年代的剩余空间不足以应付新生代的整个E和S区的对象都存活的极端情况) |
-XX:ParallelGCThreads | 设置并行GC时进行GC的线程数 |
-XX:GCTimeRatio | GC时间占总时间的比率(默认99),即允许1%的GC时间;仅在使用Parallel Scavenge垃圾收集器时生效 |
-XX:MaxGCPauseMillis | 设置GC的最大停顿时间,仅在使用Parallel Scavenge垃圾收集器时生效 |
-XX:CMSInitiatingOccupancyFraction | 设置CMS在老年代空间被使用多少后发生GC(默认68%);仅在使用CMS垃圾收集器时生效 |
-XX:UseCMSCompactAtFullCollection | 设置CMS在完成GC后是否要进行一次内存碎片整理;仅在使用CMS垃圾收集器时生效 |
-XX:CMSFullGCsBeforeCompaction | 设置CMS在完成N次GC后要进行一次内存碎片整理;仅在使用CMS垃圾收集器时生效 |
-Xnoclassgc | 是否对类进行回收 |
-XX:TraceClassLoading | 查看类的加载信息(可以在Productban版的虚拟机使用) |
-XX:TraceClassUnLoading | 查看类的卸载信息(需要fastdebug版的虚拟机支持) |
-XX:AutoBoxCacheMax | JDK1.8 设置Integer的缓冲池IntegerCache大小(实际调整默认上界127数值) |
-XX:+DoEscapeAnalysis | 开启逃逸分析(默认开启) |
-XX:-DoEscapeAnalysis | 关闭逃逸分析 |
-XX:+EliminateAllocations | 开启标量替换(默认开启) |
-XX:+PrintEliminateAllocations | 查看标量替换的具体情况 |