Java虚拟机 - JVM是什么?( 八 )


 
JVM调试参数 
Java8:https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html
 
以下展示的是Java7常用的:
 
行为参数 
指令
描述
-XX:-AllowUserSignalHandlers
如果应用程序安装了信号处理程序,请不要抱怨 。(只适用于Solaris和linux) 。
-XX:AltStackSize=16384
备用信号栈大小(以Kbytes表示) 。(仅与Solaris相关,从5.0删除) 。
-XX:-DisableExplicitGC
在默认情况下,调用System.gc()是启用的(-XX:- disableitgc) 。使用-XX:+ disableitgc来禁用对System.gc()的调用 。注意,JVM仍然在必要时执行垃圾收集 。
-XX:+FailOverToOldVerifier
当新的类型检查失败时,故障转移到旧的验证器 。(介绍6) 。
-XX:+HandlePromotionFailure
最年轻的一代收集不需要保证所有的活物体都能得到充分的推广 。(在1.4.2更新中引入)[5.0和更早:false 。]
-XX:+MaxFDLimit
将文件描述符的数量增加到最大值 。(Solaris 。)
-XX:PreBlockSpin=10
自旋计数变量使用-XX:+ usesping 。在输入操作系统线程同步代码之前,控制最大的自旋迭代 。(1.4.2中介绍) 。
-XX:-RelaxAccessControlCheck
在验证器中放松访问控制检查 。(介绍6) 。
-XX:+ScavengeBeforeFullGC
在完整的GC之前进行年轻一代GC 。(介绍1.4.1) 。
-XX:+UseAltSigs
使用替代信号代替SIGUSR1和SIGUSR2,用于VM内部信号 。(在1.3.1更新中引入,1.4.1 。与Solaris 。)
-XX:+UseBoundThreads
将用户级线程绑定到内核线程 。(与Solaris 。)
-XX:-UseConcMarkSweepGC
为老一代人使用并发的标记-清除集合 。1.4.1(介绍)
-XX:+UseGCOverheadLimit
使用一个策略,在抛出OutOfMemory错误之前,限制在GC中使用的VM时间的比例 。(介绍6) 。
-XX:+UseLwpsynchronization
使用基于lwp的而不是基于线程的同步 。(介绍1.4.0 。与Solaris 。)
-XX:-UseParallelGC
使用并行垃圾收集来清除垃圾 。1.4.1(介绍)
-XX:-UseParallelOldGC
为完整的集合使用并行垃圾收集 。启用此选项将自动设置-XX:+UseParallelGC 。(在5.0更新中引入)
-XX:-UseSerialGC
使用串行垃圾收集 。(5.0中引入的) 。
-XX:-UseSpinning
在进入操作系统线程同步代码之前,允许在Java监视器上进行简单的旋转 。(只适用于1.4.2和5.0)[1.4.2,多处理器Windows平台:true]
-XX:+UseTLAB
使用线程本地对象分配(在1.4.0中引入,在此之前被称为UseTLE)[1.4.2和更早的,x86或与-客户端:false]
-XX:+UseSplitVerifier
使用具有StackMapTable属性的新类型检查器 。(5.0中引入的 。)(5.0:假)
-XX:+UseThreadPriorities
使用本机线程优先级 。
-XX:+UseVMInterruptibleIO
在OS_INTRPT中,线程中断之前或与EINTR之间的I/O操作结果 。(介绍了6 。与Solaris 。)
 
G1垃圾回收器参数 
指令
描述
-XX:+UseG1GC
使用垃圾优先(G1)收集器 。
-XX:MaxGCPauseMillis=n
设置最大GC暂停时间的目标 。这是一个软目标,JVM将尽最大努力实现它 。
-XX:InitiatingHeapOccupancyPercent=n
启动一个并发GC循环的(整个)堆占用率 。它是由GCs使用的,它基于整个堆的占用而触发一个并发的GC循环,而不仅仅是一代(例如G1) 。0的值表示“持续GC循环” 。默认值是45 。
-XX:NewRatio=n
新旧一代的比例 。默认值是2 。
-XX:SurvivorRatio=n
伊甸园/幸存者空间大小的比率 。默认值是8 。
-XX:MaxTenuringThreshold=n
保持阈值的最大值 。默认值是15 。
-XX:ParallelGCThreads=n
设置在垃圾收集器的并行阶段中使用的线程数 。默认值随JVM运行的平台而异 。
-XX:ConcGCThreads=n
并发垃圾收集器将使用的线程数 。默认值随JVM运行的平台而异 。
-XX:G1ReservePercent=n
设置保留为假上限的堆数量,以减少升级失败的可能性 。默认值是10 。
-XX:G1HeapRegionSize=n
在G1中,Java堆被细分为一致大小的区域 。这设置了每个子分区的大小 。该参数的默认值是根据堆大小确定的 。最小值为1Mb,最大值为32Mb 。
 
性能参数 
指令
描述
-XX:+AggressiveOpts
打开在即将发布的版本中默认为默认的点性能编译器优化 。(在5.0更新中引入)
-XX:CompileThreshold=10000
编译前的方法调用/分支数量[-客户端:1,500]
-XX:LargePageSizeInBytes=4m
设置用于Java堆的大页面大小 。(引入1.4.0更新1)[amd64: 2m]


推荐阅读