成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Full GC 和 Minor GC,傻傻分不清楚

云計算 虛擬化
這篇文章主要來介紹下 JVM 中的各種 GC,讓大家來搞清楚這幾個概念。大家可能見到過很多的 GC 名詞,比如:Minor GC、Young GC、Full GC、Old GC、Major GC、Mixed GC。

[[317199]]

 這篇文章主要來介紹下 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版)》

 

責任編輯:武曉燕 來源: 武培軒
相關推薦

2022-05-15 21:52:04

typeTypeScriptinterface

2021-03-10 08:56:37

Zookeeper

2024-02-29 09:08:56

Encoding算法加密

2021-07-27 07:31:16

JavaArrayList數組

2018-12-17 12:30:05

Kubernetes存儲存儲卷

2020-10-30 08:20:04

SD卡TF卡存儲

2022-02-25 09:14:33

類變量共享實例變量

2023-09-03 21:18:07

Python編程語言

2023-02-27 15:46:19

數據元元數據

2018-05-22 16:24:20

HashMapJavaJDK

2020-11-11 07:32:18

MySQL InnoDB 存儲

2023-04-11 15:57:49

JavaScriptCSSHTML

2016-11-04 12:51:46

Unix網絡IO 模型

2024-11-04 00:00:03

viewportDOMSPA

2021-11-09 06:01:35

前端JITAOT

2021-02-08 23:47:51

文件存儲塊存儲對象存儲

2025-05-12 08:40:00

前端監控DOM

2019-11-21 14:22:12

WiFiWLAN區別

2021-01-13 08:10:26

接口IEnumeratorIEnumerable

2021-02-14 22:33:23

Java字符字段
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩中文字幕 | 亚洲欧美视频一区 | 91精品国产一区二区三区 | 成人在线免费视频 | av网站观看| 日韩视频精品在线 | 国内精品在线视频 | 狠狠视频| 欧美精品中文字幕久久二区 | 日韩电影一区 | 欧美另类视频在线 | 亚洲三区在线 | 国产男女猛烈无遮掩视频免费网站 | 欧美日韩国产中文 | 亚洲精品久久 | 国产免费福利在线 | 97久久超碰| 精品日本中文字幕 | 中文字幕1区2区 | 91久久国产精品 | 男女视频91 | 日本h片在线观看 | 成人福利影院 | a毛片| 中文av在线播放 | 91免费观看在线 | 日韩国产高清在线观看 | 国产日韩精品一区二区三区 | 碰碰视频 | 久久99这里只有精品 | 黄色大片视频 | 一区二区在线免费观看 | 天天射网站 | 老牛嫩草一区二区三区av | 亚洲精品视频在线看 | 波多野结衣二区 | 天堂国产 | 在线观看亚洲专区 | 国产综合精品一区二区三区 | 成人精品鲁一区一区二区 | 国产成人精品免费 |