-
-verbose:gc
–输出GC的详细信息 -
-Xms20M
--堆初始大小 -
-Xmx20M
--堆最大 -
-Xmn10M
--新生代大小 -
-XX:+PrintGCDetails
--输出gc详情 -
-XX:SurvivorRatio=8
--设置Eden和Survivor空间比例 -
java -XX:+PrintCommandLineFlags -version
输出当前jvm的启动参数 -
-XX:+PrintGCDetails
—输出GC日志 -
-XX:+PrintGCDateStamps
—输入GC日期 -
-XX:+UseConcMarkSweepGC
—老年代使用CMS收集器 -
-XX:+UseParNewGC
—新生代使用PC收集器 -
-XX:MaxTenuringThreshold=3
MaxTenuringThreshold的作用:在可以自动调节对象晋升(promote)到老年代的阈值的GC中,设置该阈值的最大值
该参数的默认值为15,CMS中默认为6,G1中默认为15(JVM中,该数值是由4个bit来标识的,所以最大为1111,即为15)
经历了多次GC后,存活的对象会在From Survivor和To Survivor间来回存放
而这里面的一个前提是这两个空间又足够的大小来存放这些数据
在GC算法中,会计算每个对象的年龄大小,如果达到某个年龄段后发现总大小已经大于了Survivor的空间的50%.
那么这时候就需要调整阈值,不能再等到默认的15次GC后才完成晋升
因为这样会导致Survivor空间不足,所以需要调整阈值,让这些存活的对象尽快完成晋升 -
-XX:PretenureSizeThreshold=11111
—放入老年代对象大小的阈值,超过该值直接放入老年代 该参数在Serial收集器中生效 -
-XX:+UseSerialGC
—使用Serial收集器 两个搭配才能生效 -
-XX:+PrintTenuringDistribution
--打印出各年龄段对象的总体情况