JVM初识调优

JVM调优的目的:因为Full GC所耗费的时间很长,开启Full GC的时候,同时用户线程停止(STW),为了减少用户出现卡顿的现象,减少Full GC的触发频率.

*对动态年龄的判断:
JVM初识调优_第1张图片

针对电商项目进行调优
JVM初识调优_第2张图片
JVM初识调优_第3张图片
JVM初识调优_第4张图片
原始堆内存分配:
JVM初识调优_第5张图片
这里利用13秒的时间,Eden区被填满,开启minor GC线程,第十三秒产生的60M,可能不是垃圾,在放到Survivor 01区之前,会进行动态年龄判断,发现大于1/2Survivor 01区内存,将被存放到老年代,如此下去…不出几分钟,老年代就会满,发生Full GC,因此进行调优;

进行堆内存的参数分配优化,原理:调整堆内存参数,在年轻代把对象干掉.
JVM初识调优_第6张图片
如上参数修改后,利用25秒的时间,Eden区被填满,开启minor GC线程,第25秒产生的60M,可能不是垃圾,在放到Survivor 01区之前,会进行动态年龄判断,发现小于1/2Survivor 01区内存,就会存放在Survivor 01中,接下来的25秒重复操作,Eden区和Survivor 01区的对象被垃圾回收,第25秒产生的60M,可能不是垃圾,在放到Survivor 02区之前,会进行动态年龄判断,发现小于1/2Survivor 02区内存,就会存放在Survivor 02中,如此循环,老年代将很难填满,
则解决了用户卡顿现象.

你可能感兴趣的:(jvm)