您的当前位置:首页正文

java中gc优化是什么

2024-07-17 来源:小奈知识网

本教程操作环境:windows7系统、java10版,DELL G3电脑。

1.概念

Java程序性能达不到既定目标,且其他优化手段都已经穷尽时,通常需要调整垃圾回收器来进一步提高性能,称为GC优化。

2.优化目的

1)将进入老年代的对象数量降到最低

老年代GC相对来说会比新生代GC更耗时,因此,减少进入老年代的对象数量可以显著降低Full GC的频率。

2)减少Full GC的执行时间

Full GC的执行时间比Minor GC要长很多,因此,如果在Full GC上花费过多的时间(超过1s),将可能出现超时错误。

3.参数

-Xms, -Xmx和-XX:NewRatio。-Xms和-Xmx参数通常是必须的,所以NewRatio的值将对GC性能产生重要的影响。

4.步骤

(1)监控GC的状态

(2)生成堆的dump文件

(3)分析dump文件

(4)分析结果,判断是否需要优化

(5)调整GC类型和内存分配

(6)不断的分析和调整

5.实例

例子是Full GC时间较长。

通过 jstat -gcutil 获取如下数据:

S0    S1   E    O     P     YGC YGCT FGC FGCT GCT
12.16 0.00 5.18 63.78 20.32 54 2.047 5 6.946 8.993

Perm区域对于首次GC优化来说并不重要,当前,YGC的值更有价值。

下面是Minor GC和Full GC 的相关数据:

以上就是java中gc优化的方法,相信大家在使用gc的时候也会遇到内存堆积过多的问题,那么这时候对gc进行优化就很有必要了。学会本篇gc优化的方法后,赶快动手试试吧。

显示全文