JVM调优笔记

JVM调优笔记
jvm调优的目的:1:在fullGC收集垃圾过程中经常会停掉应用线程的执行(会卡主)影响程序性能。所以目的是为了减少fullGC的次数。
2:减少fullGC的时间,如果一次fullGC的时间过长,则应用线程卡主的时间也就越长。例如双十一做秒杀,系统经常卡住,系统后台很有可能在做fullGC
一,生命周期
new出来的对象先放在Eden区域,当Eden区 域满了之后会做一次minor GC,然后释放Eden区域,有指针引用的对象会进入到survive区,当survive区满了之后也会做一次GC,会进入survive2,当经过15次GC后会进入old区域,当old区满了之后会做一次fullGC,如果old区对象都是有用的,会发生内存不够的现象(内存溢出)。

二,GC调优思路
打印GC日志(打印底层某个时间点执行gc的信息)打印GC日志方法:
https://blog.****.net/bear_lam/article/details/79648701
JVM调优笔记
上图为启动过程中打印的日志,发现fullGC很频繁,原因是在启动过程中不断地加载类导致原空间被占用
所以合理可以增大源空间大小。
使用jdk自带的jvisualvm,jconsole等工具监测程序是否发生线程阻塞,内存泄漏,以及观察gc频率是否存在异常等。