Java虚拟机常用调优参数
文章目录一、堆内存设置相关参数1、-Xms2、-Xmx3、-Xmn4、-XX:SurvivorRatio5、-XX:PretenureSizeThreshold6、-XX:MaxTenuringThreshold一、堆内存设置相关参数1、-Xms-Xms参数用于设置堆内存的最小值,如-Xms20M,设置堆内存的最小值为20M2、-Xmx-Xmx参数用于设置堆内存的最大值,如-Xmx20M,设置堆内
文章目录
一、垃圾收集器相关设置参数
1、-XX:UseSerialGC
虚拟机运行在Client模式下的默认值,设置此参数后,将使用Serial + SerialOld的收集器进行内存回收
2、-XX:UseConcMarkSweepGC
设置此参数后,将使用ParNew + CMS + Serial Old的收集器组合进行内存回收,Serial Old收集器将作为CMS收集器出现Concurrent Mode Failure失败后的备用收集器。
3、-XX:UseParallelGC
JDK9之前虚拟机运行在Server模式下的模认值,打开此开关后,将使用Parallel Scavenge + Serial Old的收集器组合进行内存回收
4、-XX:UseParallelOldGC
此参数用于设置虚拟机使用Parallel Scavenge + Parallel Old 的收集器组合进行内存回收
5、-XX:ParallelGCThreads
设置并行GC时进行内存回收的线程数
6、-XX:UseG1GC
设置使用G1收集器进行内存回收
7、-XX:+PrintGCDetails
设置发生GC时,打印内存回收日志,仅在JDK9之前有效
8、-X-log:gc*
JDK9之后设置发生GC时打印内存回收日志
9、-XX:+HeapDumpOnOutOfMemoryError
设置让虚拟机在出现内存溢出异常时Dump出当前的内存堆存储快照。
二、堆内存设置相关参数
1、-Xms
-Xms参数用于设置堆内存的最小值,如-Xms20M,设置堆内存的最小值为20M
2、-Xmx
-Xmx参数用于设置堆内存的最大值,如-Xmx20M,设置堆内存的最大值为20M
3、-Xmn
-Xmn参数用于设置堆中新生代区域的大小,如-Xmn10M,设置新生代大小为10M
4、-XX:SurvivorRatio
-XX:SurvivorRatio设置的是新生代中Eden区和Survivor区的比例,如-XX:SurvivorRatio=8,代表Eden与Survivor区的空间比例是8比1。
5、-XX:PretenureSizeThreshold
-XX:PretenureSizeThreshold参数用于指定大于该设置值的对象直接在老年代中分配,以避免大对象在Eden区和两个Survivor区之间来回复制,产生大量的内存复制操作。如 -XX:PretenureSizeThreshold=3145728,3145728即3MB(3 * 1024 * 1024),设置的是大于3M的对象直接分配到老年代中。该参数只对Serial和ParNew两款新生代收集器有效。
6、-XX:MaxTenuringThreshold
-XX:MaxTenuringThreshold参数设置的是新生代对象晋升老年代的年龄阈值,如-XX:MaxTenuringThreshold=10,设置的是对象年龄达到10后便晋升到老年代。
7、-XX:UseAdaptiveSizePolicy
设置此参数后,虚拟机将动态调整Java堆中各个区域的大小以及进入老年代的年龄。
更多推荐
所有评论(0)