JVM参数类型
标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容;
非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保证向后兼容;
非Stable参数(-XX),此类参数各个jvm实现会有所不同,将来可能会随时取消,需要慎重使用;
https://www.cnblogs.com/qlqwj...
-XX类型参数
Boolean类型
格式:-XX:[+-]<name>表示启用或者禁用name属性
-XX:+UseConcMarkSweepGC 使用CMS收集器
-XX:UseG1GC 使用G1收集器
非Boolean类型
格式:-XX:<name>=<value>
-XX:NewRatio=2 表示新生代和老年代的比例为1: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:+PretenureSizeThreshold | 直接进入老年代的对象大小(只对并行收集器有效?) | 默认为0 | |
-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] | ||
-Xloggc | 示例:-Xloggc:/app/logs/gc.log | ||
-XX:+PintFlagsInitial | JVM初始化的所有-XX参数 | ||
-XX:+PintFlagsFinal | JVM最终的的所有-XX参数 | 在命令行执行命令:java -XX:+PrintFlagsFinal -version 会打印所有的JVM参数 |
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。