手记

Java中如何做GC调优?

2018-07-02 16:54:314303浏览

若鱼1919

2实战 · 7手记 · 1推荐

首先要明确以下几个东西:
(1)评价GC性能的指标有哪些?
一个是吞吐量,另一个是最大停顿时间。什么叫吞吐量?GC里面的吞吐量说的是cpu花在垃圾回收的时间和花在应用程序上的时间的占比。什么叫最大停顿时间?就是中断应用程序来做垃圾回收的应用停顿时间。

(2)常用的GC有哪些?
GC分为3大类:serial 、 parallel、concurrent(CMS、G1)。parallel和concurrent是什么意思?parallel又叫吞吐量优先的收集器,它的意思是说:多个GC线程并行,但是GC线程与应用线程不是并行。concurrent又叫响应时间优先的收集器,它是说GC线程可以和应用线程并行执行。CMS和G1都是concurrent的垃圾收集器,JDK9里面G1已经是默认的垃圾收集器了。

(3)不同GC的日志格式是啥样的?
每一种GC的日志格式都是不一样的。

(4)如何做GC调优?
一般就是通过日志分析工具,分析GC的日志,来得出前面说的2个性能指标的数值,然后通过日志查找出现FullGC的原因,主要的原则就是消灭FullGC,减少MinorGC,最终的目标就是在保证最大停顿时间的前提之下,最大化吞吐量。

欢迎看这个视频:《Java生产环境下性能监控与调优详解》


1人推荐
随时随地看视频
慕课网APP