Java8为例
日志
-XX :+ PrintFlagsFinal ,打印 JVM 所有参教的值
-XX :+ PrintGC ,打印 GC 信息
-XX :+ PrintGcDetails ,打印 GC 详细信息
-XX :+ PrintGCTimestamps ,打印 GC 的时间戳
-Xloggc : filename ,设置 GClog 文件的位置
-XX :+ PrintTenuringDistribution ,查看熬过收集后剩余对象的年龄分布倍息
内存设置
-Xms ,设置堆的初始化内存大小·
-Xmx ,设置堆的最大内存
-Xmn ,设置新生代内存大小
-Xss ,设置线程栈大小
-XX : NewRatio ,新生代与老年代比值- XX : SurvivorRatio ,新生代中 Edenr 与两个 Survivor 庄的比值,默认为8,即Eden : Survivor : Survivor =8:1:1
-XX : MaxTenuringThreshold ,从年轻代到老年代,最大晋开年龄。 CMS 下默认为6,G1下默认为15
-XX : Metaspacesize ,设置元空间的大小,第一次超过将触发 GC
-XX : MaxMetaspacesize ,元空间最大值
-XX : MaxDirectMemorySize ,用于设置直接内存的最大值,限制通过 DirectByteBuffer 申请的内存
-XX : ReservedCodeCachesize ,用于设置 JIT 编译后的代码存放医大小,如果观察到这个值有限制,可以适当调大,一般够用即可
设置垃圾收集相关
-XX :+ UseSerialGC ,设置串行收集器
-XX :+ UseParallelGC ,设置并行收集器
-XX :+ UseConcMarkSweepGC ,使用 CMS 收集器
-XX : ParallelGCThreads ,设置 Parallel GC 的线程数
-XX : MaxGCPauseMillis , GC 最大哲停时间 ms
-XX :+ UseGIGC ,使用 Gl 垃圾收集器
CMS 垃圾回收器相关
-XX :+ UseCMSInitiatingO ccupancyOnly -XX : CMSInitiatingOccupancyFraction ,与前者配合使用,指是 MajorGC 的发生时机
-XX :+ ExplicitGcInvokesconcurrent ,代码调用 System.gc )开始并行 FullGC ,建议加上这个参教
-XX :+ CMSScavengeBeforeRemark ,表示开启或关闭在 CMS 重新标记阶段之前的清除( YGC )尝试,它可以降低 remark 时间,建议加上
-XX :+ ParallelRefProcEnabled ,可以用来并行处理 Reference ,以加快处理速度,缩短耗时
G1垃圾回收器相关
-XX : MxxGCPauseMillis ,用于设置目标停顿时间,G1会尽力达成
-XX : GlHeapRegionSize ,用于设置小堆压大小,建议保持默认
-XX : InitiatingHeapOccupancypercent ,表示当整个堆内存使用达到一定比例(默认是45%),并发标记阶段就会被启动
-XX : ConcGCThreads ,表示并发垃圾收集器使用的线程教量,默认值随 JVM 运行的平台不同而变动,不建议修改
参教查询官网地址:
https://docs.oracle.com/javase/8/docs/technotes/tools/un
https://docs.oracle.com/javase/8/docs/technotes/tools/#scripting
建议面试时最好能记住 CMS 和G1的参教,特点突出使用较多,被问的概率大