Java中如何做GC调优?
2018-07-02 本文已影响0人
Joshua1919
首先要明确以下几个东西:
(1)评价GC性能的指标有哪些?
一个是吞吐量,另一个是最大停顿时间。什么叫吞吐量?GC里面的吞吐量说的是cpu花在垃圾回收的时间和花在应用程序上的时间的占比。什么叫最大停顿时间?就是中断应用程序来做垃圾回收的时间。
(2)常用的GC有哪些?
GC分为3大类:serial 、 parallel、concurrent(CMS、G1)。parallel和concurrent是什么意思?parallel又叫吞吐量有限的收集器,它的意思是说:多个GC线程并行,但是GC线程与应用线程不是并行。concurrent又叫响应时间优先的收集器,它是说GC线程可以和应用线程并行执行。
(3)不同GC的日志格式是啥样的?
每一种GC的日志格式都是不一样的。
(4)如何做GC调优?
一般就是通过分析GC的日志来得出前面说的2个性能指标的数值,然后通过日志查找出现fullGC的原因,主要的原则就是消灭FullGC,减少MinorGC,最终的目标就是在保证最大停顿时间的前提之下,最大化吞吐量。