1

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:SurvivorRatioEden区与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:+PintFlagsInitialJVM初始化的所有-XX参数
-XX:+PintFlagsFinalJVM最终的的所有-XX参数 在命令行执行命令:java -XX:+PrintFlagsFinal -version 会打印所有的JVM参数

东瓜
18 声望3 粉丝

« 上一篇
linux常用命令
下一篇 »
idea远程调试