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

JVM系列之JVM垃圾回收算法相關知識

開發 前端
JVM垃圾回收算法主要有標記清除、復制算法、標記整理、分代收集四種,下面來逐一介紹。

今天給大家繼續分享JVM垃圾回收算法相關知識。

JVM垃圾回收算法主要有標記清除、復制算法、標記整理、分代收集四種,下面來逐一介紹。

1、標記清除(Mark-Sweep)

       圖片        

標記清除作為最基礎的垃圾回收算法,其過程要經歷兩個階段:標記、回收。

標記:遍歷內存區域,標記出待回收的對象。

回收:再次遍歷內存區域,然后對已標記的對象占用的內存進行回收。

缺點:

  • 需要遍歷兩次內存區域,效率低。
  • 因為JVM存儲特點是邏輯上連續,物理上可以不連續,標記清除算法可能產生大量內存碎片,當JVM需要一塊比較大的內存空間的時候,而又找不到合適的內存空間,就會觸發下一次的垃圾回收操作。

2、復制算法(Copy)


       圖片        

復制算法主要是解決標記—清除算法遍歷的和產生內存碎片的缺點,在其基礎上進行改進而來的,它會將可用內存按容量分為大小相等的兩塊,每次只能使用其中的一塊,當正在使用的這一塊的內存空間不滿足使用的時候,就會將還存活的對象復制到另外一塊空的內存上面,然后再把當前內存空間一次清理掉。

復制算法在新生代中兩個幸存區(From 、To)的不停交換是最典型的用法。

新生代內存空間占比為 8(Eden 伊甸園區  ):1 (To Survivor):1 (Survivor From)。

優點

  • 內存回收時,不會產生內存碎片
  • 回收的時候只需移動棧頂指針,按順序分配內存即可,實現簡單
  • 每次只對兩塊中的一塊內存進行回收,效率高
  • 復制算法執行后,空間時連續的。

缺點:

一次性分配內存只能用其中的一半,內存的最大可利用率只有一半。

3、標記整理(Mark-Compact)

       圖片        

標記整理算法主要是針對老年代來設計的。

執行過程:

  • 標記:對需要回收對象的進行標記。
  • 整理:讓存活的對象,向內存的一端移動,在整理的過程中,之前對象的在虛擬機棧中的引用地址也隨之發生改變,最后直接清理掉非存活對象的內存空間。

優點:

  • 沒有碎片化內存產生(標記清除算法比較)。
  • 沒有了內存利用率減半的消耗(復制算法比較)。

缺點:

  • 效率相比標記復制算法稍低。
  • 在整理存活對象過程中,因為存活對象位置點變動,需要調整對象在虛擬機棧中的引用地址,同時需要全程暫停用戶線程,STW(Stop The World)。

4、分代收集算法

嚴格意義上來說分代收集不能算一種新的垃圾回收算法,分代收集其實只是根據對象的存活的時間的長短,將新生代和老年代針對不同的內存區域,采取對應的算法。目前市面上大多商用虛擬機都采用分代收集算法。

新生代:每次都有大量對象消亡,因為有老年代作為內存擔保,比較采取復制算法。

老年代:對象存活時間長,可采用標記整理、標記清除算法。

5、三種垃圾回收算法對比

對比參數

標記清除

標記整理

標記復制

速度

中等

最慢

最快

空間開銷

少(會產生碎片)

少(不會產生碎片)

2倍開銷

移動對象

適合場景

老年代

老年代

新生代

責任編輯:姜華 來源: IT技術分享社區
相關推薦

2017-08-04 10:53:30

回收算法JVM垃圾回收器

2022-01-20 10:34:49

JVM垃圾回收算法

2022-03-21 11:33:11

JVM垃圾回收器垃圾回收算法

2022-06-07 07:10:40

MinorGCMajorGCFullGC

2009-12-25 16:15:31

JVM垃圾回收算法

2021-11-05 15:23:20

JVM回收算法

2023-08-08 10:29:55

JVM優化垃圾回收

2012-01-09 16:53:36

JavaJVM

2021-02-04 10:43:52

開發技能代碼

2010-09-27 09:01:26

JVM分代垃圾回收

2010-09-26 16:42:04

JVM內存組成JVM垃圾回收

2010-09-26 13:29:46

JVM垃圾回收

2009-12-30 10:14:29

JVM垃圾回收

2010-09-25 15:33:19

JVM垃圾回收

2022-06-22 09:54:45

JVM垃圾回收Java

2017-04-25 14:39:55

JVM內存Java

2010-09-25 15:26:12

JVM垃圾回收

2010-09-16 15:10:24

JVM垃圾回收機制

2017-09-21 14:40:06

jvm算法收集器

2010-01-14 11:28:54

JVM分代垃圾回收
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 午夜av免费 | 久久精品国产久精国产 | 久一精品 | 色偷偷人人澡人人爽人人模 | 在线播放国产一区二区三区 | 日韩精品久久久久 | 日本黄视频在线观看 | 亚洲精品自拍 | 免费国产视频在线观看 | 亚洲欧美视频一区 | 99爱国产 | 一级大片免费 | 91在线看视频 | 亚洲国产欧美91 | 狠狠的日 | 亚洲欧洲精品在线 | 亚洲免费三级 | 精品欧美一区免费观看α√ | 午夜免费福利电影 | 精品视频免费在线 | 成人av播放| www中文字幕 | 99在线观看| 亚洲黄色av | 欧美日日| 国产日韩欧美 | 亚洲91精品 | av在线播放免费 | 国产精品视频一区二区三区不卡 | 一区二区精品在线 | 免费1区2区3区 | 精品欧美一区二区久久久伦 | 色综合99| 欧美精品区 | 欧美日韩中文在线观看 | 久久中文字幕电影 | 啪一啪在线视频 | 久久亚洲国产 | 亚洲一区二区三区视频 | 国产精品欧美一区二区三区不卡 | 国产精品一区二区av |