JVM中参数分类解读

简介:
指定JVM 参数我们就可以指定启动 JVM 进程以哪种模式(server 或 client),运行时分配的堆大小,栈大小,用什么垃圾收集器等等,JVM 参数主要分以下三类:

1. 标准参数(-):
所有的 JVM 实现都必须实现这些参数的功能,而且向后兼容;例如 -verbose:gc(输出每次GC的相关情况),-server(一服务器模式启动jvm)

2. 非标准参数(-X):
默认 JVM 实现这些参数的功能,但是并不保证所有 JVM 实现都满足,且不保证向后兼容,栈,堆大小的设置都是通过这个参数来配置的,用得最多的如下:

-Xms512m JVM 启动时设置的初始堆大小为 512M
-Xmx512m JVM 可分配的最大堆大小为 512M
-Xmn200m 设置的年轻代大小为 200M
-Xss128k 设置每个线程的栈大小为 128k

3. 非Stable参数(-XX):
此类参数各个 jvm 实现会有所不同,将来可能会随时取消,需要慎重使用,非 Stable 参数主要有三大类:

1) 行为参数:
用于改变JVM的一些基础行为,如使用什么垃圾收集器。
-XX:+UseG1GC:使用G1
-XX:+UseSerialGC:在新生代和老年代使用串行收集器
-XX:+UseParNewGC:在新生代使用并行收集器
-XX:+UseConcMarkSweepGC:对老生代采用CMS
-XX:+UseParallelGC:启用并行收集器Parallel Scavenge
-XX:+UseParallelOldGC:对Full GC启用并行,当-XX:+UseParallelGC启用时该项自动启用

2)追踪、调试参数:
-XX:+PrintGCDetails :打印GC前后的详细信息以及对的使用情况
-XX:+PrintGCDateStamps:在每次GC的打印信息前加上时间戳
-Xloggc:文件路径 :将GC日志保存到对应文件中,借助分析工具进行分析
-XX:+HeapDumpOnOutOfMemoryError :当首次遭遇OOM时导出此时堆中相关信息

3)性能调优(Performance Tuning):
用于 jvm 的性能调优,如设置新老生代内存容量比例。

-XX:newSize=300m:设置年轻代的大小。
-XX:newRatio=2:设置年轻代与老年代的比例。2表示,年轻代:老年代=1:2
-XX:SurvivorRatio=3:设置年轻代中Eden区与两个Survivor区的比值。3表示 Eden:Survivor=3:2,一个Survivor区占整个年轻代的1/5。
-XX:ParallelGCThreads=n:设置并行收集器收集时使用的CPU数。并行收集线程数。
-XX:MaxGCPauseMillis=n:设置并行收集最大暂停时间,即响应时间。
-XX:GCTimeRatio=n:设置垃圾回收时间占程序运行时间的百分比(即,吞吐量)。公式为1/(1+n)。

猜你喜欢

转载自blog.csdn.net/qq_40728028/article/details/106329413