什么时候需要JVM调优

JVM调优

JVM调优,本质上是:对象不合理创建,堆内存不合理利用的一个候补解决方案。对象不合理创建和堆内存不合理利用会导致堆内存溢出,导致GC。
lGC会导致Stop-The-World(STW)现象,破坏系统稳定运行,给用户系统卡顿体验。从JVM调优的角度来看,我们应该尽量避免发生YGC或FullGC,或者使得YGC和FullGC的时间足够的短。

调优策略

1、考虑JVM需要的总内存大小
2、年轻代和老年代内存的分配,年轻代又分为Eden,s0,s1
3、选择合适的垃圾回收算法,控制 GC 停顿次数和时间。默认情况下是 G1,但是也不一定是最优的,也可以考虑其他的收集器。主要的目的就是控制一下 Gc 的次数以及停顿的时间。
4、解决内存泄露的问题。根据日志来分析虚拟机的一些信息(内存大小,对象的统计,以及相应的线程等等),这里不是说通过虚拟机优化来解决问题,可能最后要去修改代码
5、检查哪些对象在系统中数量最大,比如一个对象实例在虚拟机中比较多,为什么会这么多,分析一下是否需要这么多的对象实例,是否可以通过复用,来减少对这个需要
6、将转到老年代的对象数量降到最小。老年代的对象存活时间一般都很长,会占用大量的内存资源,不是十分有必要的话就别让这些进去到老年代了。相对比较理想的就在新生代给消灭了。
7、将转到老年代的对象数量降到最小。老年代的对象存活时间一般都很长,会占用大量的内存资源,不是十分有必要的话就别让这些进去到老年代了。相对比较理想的就在新生代给消灭了。

扩展:JVM的2种GC

垃圾回收GC,分为2种,一种是Minor GC,也可以成为YGC,即年轻代GC,在Eden园区发生;还有一种称为Major GC,又称为FullGC,发生在老年区。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容