JVM启动参数

JVM参数类型

标准参数(-),全部的JVM实现都必须实现这些参数的功能,并且向后兼容;
非标准参数(-X),默认jvm实现这些参数的功能,可是并不保证全部jvm实现都知足,且不保证向后兼容;
非Stable参数(-XX),此类参数各个jvm实现会有所不一样,未来可能会随时取消,须要慎重使用;html

https://www.cnblogs.com/qlqwj...jvm

-XX类型参数

Boolean类型

格式:-XX:[+-]<name>表示启用或者禁用name属性性能

-XX:+UseConcMarkSweepGC 使用CMS收集器
-XX:UseG1GC 使用G1收集器

非Boolean类型

格式:-XX:<name>=<value>测试

-XX:NewRatio=2 表示新生代和老年代的比例为2
-XX:MaxDirectMemorySize=512M 堆外内存最大值,默认64

JVM经常使用启动参数

参数名称 含义 默认值
-Xms 初始堆大小 物理内存的1/64(<1GB) 默认(MinHeapFreeRatio参数能够调整)空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制.
-Xmx 最大堆大小 物理内存的1/4(<1GB) 默认(MaxHeapFreeRatio参数能够调整)空余堆内存大于70%时,JVM会减小堆直到 -Xms的最小限制
-Xmn 年轻代大小 注意:此处的大小是(eden+ 2 survivor space).与jmap -heap中显示的New gen是不一样的。整个堆大小=年轻代大小 + 年老代大小 + 持久代大小.增大年轻代后,将会减少年老代大小.此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8
-XX:NewSize 设置年轻代大小
-XX:MaxNewSize 年轻代最大值
-XX:PermSize 设置持久代(perm gen)初始值 物理内存的1/64
-XX:MaxPermSize 设置持久代最大值 物理内存的1/4
-Xss 每一个线程的堆栈大小 JDK5.0之后每一个线程堆栈大小为1M,之前每一个线程堆栈大小为256K.更具应用的线程所需内存大小进行 调整.在相同物理内存下,减少这个值能生成更多的线程.可是操做系统对一个进程内的线程数仍是有限制的,不能无限生成,经验值在3000~5000左右。通常小的应用, 若是栈不是很深, 应该是128k够用的 大的应用建议使用256k。这个选项对性能影响比较大,须要严格的测试。
-XX:NewRatio 年轻代(包括Eden和两个Survivor区)与年老代的比值(除去持久代) -XX:NewRatio=4表示年轻代与年老代所占比值为1:4,年轻代占整个堆栈的1/5,Xms=Xmx而且设置了Xmn的状况下,该参数不须要进行设置?
-XX:SurvivorRatio Eden区与Survivor区的大小比值 设置为8,则两个Survivor区与一个Eden区的比值为2:8,一个Survivor区占整个年轻代的1/10
-XX:+DisableExplicitGC 关闭System.gc()
-XX:+UseParNewGC 设置年轻代为并行收集 可与CMS收集同时使用,JDK5.0以上,JVM会根据系统配置自行设置,因此无需再设置此值
-XX:+UseConcMarkSweepGC 使用CMS内存收集
-XX:+PrintGCDetails 输出形式:[GC [DefNew: 8614K->781K(9088K), 0.0123035 secs] 118250K->113543K(130112K), 0.0124633 secs] [GC [DefNew: 8614K->8614K(9088K), 0.0000665 secs][Tenured: 112761K->10414K(121024K), 0.0433488 secs] 121376K->10414K(130112K), 0.0436268 secs]
-XX:+PrintGCTimeStamps 可与-XX:+PrintGC -XX:+PrintGCDetails混合使用,输出形式:11.851: [GC 98328K->93620K(130112K), 0.0082960 secs]
-XX:+PintFlagsInitial JVM初始化的全部-XX参数
-XX:+PintFlagsFinal JVM最终的的全部-XX参数
相关文章
相关标签/搜索