一、垃圾收集器相关设置参数

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堆中各个区域的大小以及进入老年代的年龄。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐