JVM GC 原理 5:详解 G1 垃圾回收器

2022-07-20  本文已影响0人  cbhe

基本原理

G1 垃圾回收器是从 CMS回收器是基于分代理论和分块理论的基础上发展而来的。

垃圾回收模式

G1 垃圾回收模式有两种:youngGC 和 mixedGC

特点

1. 可控的垃圾回收时间

G1 垃圾回收器,由于将堆空间分成了大小固定的块,且支持只回收某几个块而不是全部块,所以可以通过确定回收的块数来满足垃圾回收的指定时间要求,这是其他垃圾回收算法都无法做到的。而且,垃圾最多的块会被优先回收,极大提升了垃圾回收效率,这也是它叫做 G1(garbage first)的原因。

2. 提升了新生代的垃圾回收速度

之前的垃圾回收器,对于新生代一般都是采用复制算法,G1 对于新生代也是采用复制算法,不过由于 G1 的堆内存被分成了大小固定的块,因此对新生代进行垃圾回收时,不仅可以想其他垃圾回收器一样可以并发标记垃圾,还能并发移动存活对象到新的块中,其他垃圾回收算法由于 S 区(survivors 区)是连续的内存,因此即便可以做到并发标记也无法做到并发移动。

适合的场景

G1 适合多核大内存的场景,而且是对可用性要求较高的场景。

调优思路

面试思路

上一篇 下一篇

猜你喜欢

热点阅读