一. 常用的X参数
-Xms:
初始大小内存,默认为物理内存1/64,等价于-XX:InitialHeapSize
-Xmx:
最大分配内存,默认物理内存1/4,等价于-XX:MaxHeapSize
-Xss:
设置单个线程栈的大小,默认542K~1024K ,等价于-XX:ThreadStackSize
-Xmn:
设置年轻代的大小
二. 常用的XX参数
-XX:MetaspaceSize
设置元空间大小
元空间的本质和永久代类似,都是对JVM规范中方法区的实现,不过元空间与永久代最大的区别在于:
元空间并不在虚拟机中,而是在本地内存中。因此,默认元空间的大小仅受本地内存限制。
-XX:+PrintGCDetails
输出详细GC收集日志信息
-XX:SurvivorRatio
设置新生代中Eden和S0/S1空间的比例
默认-XX:SurvivorRatio=8, Eden:S0:S1=8:1:1
-XX:NewRatio
设置年轻代与老年代在堆结构的占比
默认-XX:NewRatio=2 新生代在1,老年代2,年轻代占整个堆的1/3
-XX:MaxTenuringThreshold
设置垃圾的最大年龄
默认-XX:MaxTenuringThreshold=15
如果设置为0,年轻代对象不经过Survivor区,直接进入老年代。对于年老代比较多的应用,可以提高效率。
如果将此值设置为一个较大的值,则年轻代对象会在Survivor区进行多次复制,这样可以增加对对象在年轻代的存活时间,增加在年轻代即被回收的概率。
-XX:+UseSerialGC
串行垃圾回收器
-XX:+UseParallelGC
并行垃圾回收器
在IDEA中使用一下这些参数:
配置参数:
-Xms128m -Xmx4096m -Xss1024K -XX:MetaspaceSize=512m -XX:+PrintCommandLineFlags -XX:+PrintGCDetails -XX:+UseSerialGC
在IDEA里配置参数示意图: