-XX:+TraceClassLoading
输出类的加载过程
-XX:+TraceClassUnLoading
输出类的卸载过程
-XX:ReservedCodeCacheSize
设置JIT优化后的代码缓存的空间CodeCache,默认48M
-XX:+Use CodeCacheFlushing
清理CodeCache
-XX:CICompilerCount
设置的相对较大可以一定程度提升JIT编译的速度,默认为2
-XX:+PrintFlagsFinal
查看JVM选项默认值,如下:
........
bool UseXmmI2D = false {ARCH product}
bool UseXmmI2F = false {ARCH product}
bool UseXmmLoadAndClearUpper = true {ARCH product}
bool UseXmmRegToRegMoveAll = true {ARCH product}
bool VMThreadHintNoPreempt = false {product}
intx VMThreadPriority = -1 {product}
intx VMThreadStackSize = 0 {pd product}
intx ValueMapInitialSize = 11 {C1 product}
intx ValueMapMaxLoopSize = 8 {C1 product}
intx ValueSearchLimit = 1000 {C2 product}
bool VerifyMergedCPBytecodes = true {product}
intx WorkAroundNPTLTimedWaitHang = 1 {product}
uintx YoungGenerationSizeIncrement = 20 {product}
uintx YoungGenerationSizeSupplement = 80 {product}
uintx YoungGenerationSizeSupplementDecay = 8 {product}
uintx YoungPLABSize = 4096 {product}
bool ZeroTLAB = false {product}
intx hashCode = 0 {product}
-XX:+PrintCommandLineFlags
打印真正的参数启动命令,如下:
-XX:InitialHeapSize=266354048 -XX:MaxHeapSize=4261664768 -XX:+PrintCommandLineFlags -XX:+PrintFlagsFinal -XX:+UseCompressedOops -XX:-UseLargePagesIndividualAllocation -XX:+UseParallelGC
-XX:+PrintFlagsInitial
打印程序中设置好的默认值,不是系统启动时设置的,比如
我启动时设置的1G,打印出来的是4G。
-XX:MinHeapFreeRatio
这个很多人应该都熟悉,是JVM堆内存需要扩大的最小比例,堆内存剩余空间低于这个比例时会开始变大,它有个兄弟
-XX:MaxHeapFreeRatio
,当堆内存剩余空间高于这个比例时,会开始变小
-XX:PretenureSizeThreshold
当新建对象大于这个值时,会直接进入老年代
-XX:SurvivorRatio
Eden/Survivor的比重(注意是一个Survivor)
-XX:InitialSurvivorRatio
Young/S0的比重
-XX:+UseAdaptiveSizePolicy
动态调整Survivor的大小,默认开启(注意这里的默认是指其他GC
参数也是默认的,如果修改了其他参数,默认关闭)
-XX:MaxTenuringThreshold
新生代对象Minor GC次数达到该值后,会进入老年代(一般不修改)
-XX:+PrintGCDetails
输出 heap 区域的 GC 信息