当前位置:正文

就特意针对重生代的 GC手机版APP下载

发布日期:2024-05-29 15:57    点击次数:129

[[317199]]手机版APP下载

 手机版APP下载这篇著作东要来先容下 JVM 中的各式 GC,让环球来搞明晰这几个见地。

环球可能见到过许多的 GC 名词,比如:Minor GC、Young GC、Full GC、Old GC、Major GC、Mixed GC。

这样多见地,念念念念齐头疼,到底各式前仰后合的 GC 指的是什么?

底下先援用 R 大在知乎上的复兴:

针对 HotSpot VM 的兑现,它内部的 GC 其实准确分类有两种:

Partial GC(局部 GC): 并不网罗统统这个词 GC 堆的边幅

Young GC: 只网罗 Young Gen 的 GC,Young GC 还有种说法就叫作念 Minor GC Old GC: 只网罗 old gen 的 GC,唯有垃圾网罗器 CMS 的 concurrent collection 是这个边幅 Mixed GC: 网罗统统这个词 Young Gen 以及部分 old gen 的 GC,唯有垃圾网罗器 G1 有这个边幅

Full GC: 网罗统统这个词堆,包括重生代,老年代,永久代(在 JDK 1.8 及以后,永久代被移除,换为 metaspace 元空间)等统统部分的边幅

接下来让咱们再来了解下各个 GC:

(1)Minor GC / Young GC

领先咱们先来看下 Minor GC / Young GC,环球齐知谈,重生代(Young Gen)也不错称之为年青代,这两个名词是等价的。那么在年青代中的 Eden 内存区域被占满之后,骨子上就需要触发年青代的 GC,大约是重生代的 GC。

此时这个重生代 GC,其实便是所谓的 Minor GC,也不错称之为 Young GC,这两个名词,慑服环球就贯通了,说白了,就特意针对重生代的 GC。

(2)Old GC

所谓的老年代 GC,称之为 Old GC 愈加相宜一些,因为从字面意旨上就不错贯通,这便是所谓的老年代 GC。

然则在这里之是以咱们把老年代 GC 称之为Full GC,其实亦然不错的,只不外是一个字面真谛的多种不同的说法。

为了愈加精确的表述这个老年代 GC 的含义,不错把老年代 GC 称之为 Old GC。

(3)Full GC

关于 Full GC,其实这里有一个愈加相宜的说法,便是说 Full GC 指的是针对重生代、老年代、永久代的全体内存空间的垃圾回收,是以称之为 Full GC。

从字面真谛上也不错贯通,Full 便是举座的真谛,是以便是对 JVM 进行一次举座的垃圾回收,把各个内存区域的垃圾齐回收掉。

(4)Major GC

还有一个名词是所谓的 Major GC,这个其实一般用的相比少,他亦然一个终点容易期凌的见地。

有些东谈主把 Major GC 跟 Old GC等价起来,合计他便是针对老年代的 GC,也有东谈主把 Major GC 和 Full GC 等价起来,合计他是针对 JVM 全体内存区域的GC。

是以针对这个容易期凌的见地,暴戾环球以后少提。淌若听到有东谈主说这个 Major GC的见地,环球不错问明晰,他到底是念念说 Old GC 呢?照旧 Full GC 呢?

(5)Mixed GC

Mixed GC 是 G1 中零星的见地,其实说白了,主要便是说在 G1 中,一朝老年代占据堆内存的 45%(-XX:InitiatingHeapOccupancyPercent:开荒触发象征周期的 Java 堆占用率阈值,默许值是 45%。这里的Java 堆占比指的是 non_young_capacity_bytes,包括 old + humongous),就要触发 Mixed GC,此时对年青代和老年代齐会进行回收。Mixed GC 唯有 G1 中才会出现。

参考

https://tech.meituan.com/2016/09/23/g1.html

https://www.zhihu.com/question/41922036/answer/93079526

 

《深化贯通Java凭空机:JVM高等特点与最好实施(第3版)》

 





Powered by 🏆华体汇·体育全站app官网入口(中国)官方网站IOS安卓/通用版/手机版APP下载 @2013-2022 RSS地图 HTML地图