jvm 虚拟机常用参数


jvm 虚拟机常用参数

 

*****************************

参数格式(区分大小写)

 

-XX:+name:启用name

-XX:-name:禁用name

-XX:name=value:将name赋值为value

 

示例:

-Xms10m <==> -XX:InitialHeapSize=10m:设置heap的初始大小为10m

 

 

*****************************

gc日志

 

-XX:+PrintGC is deprecated. Will use -Xlog:gc instead.
-XX:+PrintGCDetails is deprecated. Will use -Xlog:gc* instead.

-XX:+PrintGC             ==> -Xlog:gc   输出gc日志

-XX:+PrintGCDetails ==> -Xlog:gc*  输出日志详细信息

 

 

*****************************

垃圾收集器参数

 

-XX:+UseSerialGC:Serial + Serial Old

-XX:+UseParNewGC:ParNew + Serial Old(ParNew在java 10中已经移除,该参数无法使用)

 

-XX:+UseParallelGC:Parallel Scavenge + Parallel Old

-XX:+UseParallelOldGC:Parallel Scavenge + Parallel Old(该参数在java 15中已经移除,直接使用UseParallelGC)

 

-XX:+UseConcMarkSweepGC:ParNew + CMS + Serial Old(CMS在java 14已经移除)

 

-XX:+UseG1GC:G1垃圾收集器

-XX:+UseZGC:ZGC垃圾收集器(ZGC在java 15正式发布)

 

-XX:SurvivorRatio=8:新生代eden:survivor的比值

-XX:PretenureSizeThreshold=1024000:进入老年代对象大小

-XX:MaxtenuringThreshold=2:进入老年代的年龄

-XX:ParallelGCThreads=2:并行gc线程数,限制垃圾回收线程

 

-XX:GCTimeRatio=99:gc占总时间的比率,默认为99,即最多1%的垃圾回收时间,用于控制吞吐量,Parallel Scavenge生效

-XX:MaxGCPauseMillis=10:最大停顿时间(毫秒),实际停顿时间可能会超过该值,Parallel Scavenge中使用

-XX:+UseAdaptiveSizePolicy:自动调节各区域的大小、进入老年代的年龄,Parallel Scavenge中使用

 

CMS在java9已经不推荐使用,在java 14中已经移除

-XX:CMSInitiatingOccupancyFraction=68%:默认为68%,CMS在老年代中使用大68%时,触发full gc,在CMS生效

-XX:+UseCMSCompactAtFullGC:开启内存碎片整理,在CMS生效

-XX:CMSFullGCsBeforeCompaction=2:默认为0,即每次full gc时,都会进行整理,在CMS生效

 

 

*****************************

堆栈大小分配

 

栈空间

-Xss128k:线程使用的栈空间大小为128k

 

堆空间

-Xms20m:最小堆空间

-Xmx20m:最大堆空间

-Xmn10m:新生代堆空间大小

 

-XX:SurvivorRatio=8:新生代eden和survivor的比值

 

 

*****************************

-verbose:输出虚拟机运行信息

 

-verbose:class输出类加载信息

"C:\Program Files\Java\jdk-12.0.2\bin\java.exe" -verbose:class -XX:SurvivorRatio=5 -Xlog:gc -XX:+HeapDumpOnOutOfMemoryError "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2019.2\lib\idea_rt.jar=59539:C:\Program Files\JetBrains\IntelliJ IDEA 2019.2\bin" -Dfile.encoding=UTF-8 -classpath E:\java\IdeaProjects\test\out\production\test jvmtest.HelloTest
[0.022s][info][class,load] opened: C:\Program Files\Java\jdk-12.0.2\lib\modules
[0.027s][info][gc        ] Using G1
[0.031s][info][class,load] java.lang.Object source: shared objects file
[0.031s][info][class,load] java.io.Serializable source: shared objects file
[0.031s][info][class,load] java.lang.Comparable source: shared objects file
[0.031s][info][class,load] java.lang.CharSequence source: shared objects file
[0.031s][info][class,load] java.lang.constant.Constable source: shared objects file

 

-verbose:gc输出gc信息,与-Xlog:gc等效

"C:\Program Files\Java\jdk-12.0.2\bin\java.exe" -Xms20m -Xms20m -Xmn10m -verbose:gc "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2019.2\lib\idea_rt.jar=59675:C:\Program Files\JetBrains\IntelliJ IDEA 2019.2\bin" -Dfile.encoding=UTF-8 -classpath E:\java\IdeaProjects\test\out\production\test jvmtest.HelloTest
[0.025s][info][gc] Using G1
[0.052s][info][gc] Periodic GC disabled
[0.166s][info][gc] GC(0) Pause Young (Concurrent Start) (G1 Humongous Allocation) 9M->7M(20M) 3.077ms
[0.167s][info][gc] GC(1) Concurrent Cycle
[0.170s][info][gc] GC(1) Pause Remark 13M->13M(24M) 0.689ms
[0.170s][info][gc] GC(1) Pause Cleanup 13M->13M(24M) 0.048ms
[0.170s][info][gc] GC(1) Concurrent Cycle 3.884ms

 

-verbose:jni:输出本地方法调用信息

"C:\Program Files\Java\jdk-12.0.2\bin\java.exe" -verbose:jni -XX:SurvivorRatio=5 -Xlog:gc -XX:+HeapDumpOnOutOfMemoryError "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2019.2\lib\idea_rt.jar=59495:C:\Program Files\JetBrains\IntelliJ IDEA 2019.2\bin" -Dfile.encoding=UTF-8 -classpath E:\java\IdeaProjects\test\out\production\test jvmtest.HelloTest
[0.022s][info][gc] Using G1
[Dynamic-linking native method java.lang.Object.registerNatives ... JNI]
[Registering JNI native method java.lang.Object.hashCode]
[Registering JNI native method java.lang.Object.wait]
[Registering JNI native method java.lang.Object.notify]
[Registering JNI native method java.lang.Object.notifyAll]
[Registering JNI native method java.lang.Object.clone]
[Dynamic-linking native method java.lang.System.registerNatives ... JNI]
[Registering JNI native method java.lang.System.currentTimeMillis]
[Registering JNI native method java.lang.System.nanoTime]

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值