日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Java分代垃圾回收策略原理詳解

瀏覽:165日期:2022-09-03 18:35:39

一、為什么要分代

分代的垃圾回收策略,是基于這樣一個事實:不同的對象的生命周期是不一樣的。因此,不同生命周期的對象可以采取不同的收集方式,以便提高回收效率。

在Java程序運行的過程中,會產生大量的對象,其中有些對象是與業務信息相關,比如Http請求中的Session對象、線程、Socket連接,這類對象跟業務直接掛鉤,因此生命周期比較長。但是還有一些對象,主要是程序運行過程中生成的臨時變量,這些對象生命周期會比較短,比如:String對象,由于其不變類的特性,系統會產生大量的這些對象,有些對象甚至只用一次即可回收。

試想,在不進行對象存活時間區分的情況下,每次垃圾回收都是對整個堆空間進行回收,花費時間相對會長,同時,因為每次回收都需要遍歷所有存活對象,但實際上,對于生命周期長的對象而言,這種遍歷是沒有效果的,因為可能進行了很多次遍歷,但是他們依舊存在。因此,分代垃圾回收采用分治的思想,進行代的劃分,把不同生命周期的對象放在不同代上,不同代上采用最適合它的垃圾回收方式進行回收。

二、如何分代

如圖所示:

Java分代垃圾回收策略原理詳解

虛擬機中的共劃分為三個代:年輕代(Young Generation)、年老代(Old Generation)和持久代(Permanent Generation)。其中持久代主要存放的是Java類的類信息,與垃圾收集要收集的Java對象關系不大。年輕代和年老代的劃分是對垃圾收集影響比較大的。

年輕代:

所有新生成的對象首先都是放在年輕代的。年輕代的目標就是盡可能快速的收集掉那些生命周期短的對象。年輕代分三個區。一個Eden區,兩個Survivor區(一般而言)。大部分對象在Eden區中生成。當Eden區滿時,還存活的對象將被復制到Survivor區(兩個中的一個),當這個Survivor區滿時,此區的存活對象將被復制到另外一個Survivor區,當這個Survivor區也滿了的時候,從第一個Survivor區復制過來的并且此時還存活的對象,將被復制“年老區(Tenured)”。需要注意,Survivor的兩個區是對稱的,沒先后關系,所以同一個區中可能同時存在從Eden復制過來的對象,和從前一個Survivor復制過來的對象,而復制到年老區的只有從第一個Survivor區過來的對象。而且,Survivor區總有一個是空的。同時,根據程序需要,Survivor區是可以配置為多個的(多于兩個),這樣可以增加對象在年輕代中的存在時間,減少被放到年老代的可能。

新生代有劃分為Eden、From Survivor和To Survivor三個部分,他們對應的內存空間的大小比例為8:1:1,也就是,為對象分配內存的時候,首先使用Eden空間,經過GC后,沒有被回收的會首先進入From Survivor區域,任何時候,都會保持一個Survivorq區域(From Survivor或To Survivor)完全空閑,也就是說新生代的內存利用率最大為90%。From Survivor和To Survivor兩個區域會根據GC的實際情況,進行互換,將From Survivor區域中的對象全部復制到To Survivor區域中,或者反過來,將To Survivor區域中的對象全部復制到From Survivor區域中。

年老代:

在年輕代中經歷了N次垃圾回收后仍然存活的對象,就會被放到年老代中。因此,可以認為年老代中存放的都是一些生命周期較長的對象。

GC過程中,當某些對象經過多次GC都沒有被回收,可能會進入到年老代。或者,當新生代沒有足夠的空間來為對象分配內存時,可能會直接在年老代進行分配。

持久代:

用于存放靜態文件,如今Java類、方法等。持久代對垃圾回收沒有顯著影響,但是有些應用可能動態生成或者調用一些class,例如Hibernate等,在這種時候需要設置一個比較大的持久代空間來存放這些運行過程中新增的類。持久代大小通過-XX:MaxPermSize=<N>進行設置。

永久代實際上對應著虛擬機運行時數據區的“方法區”,這里主要存放類信息、靜態變量、常量等數據。一般情況下,永久代中對應的對象的GC效率非常低,因為這里的的大部分對象在運行都不要進行GC,它們會一直被利用,直到JVM退出。

三、什么情況下觸發垃圾回收

由于對象進行了分代處理,因此垃圾回收區域、時間也不一樣。GC有兩種類型:Scavenge GC和Full GC。

Scavenge GC

一般情況下,當新對象生成,并且在Eden申請空間失敗時,就會觸發Scavenge GC,對Eden區域進行GC,清除非存活對象,并且把尚且存活的對象移動到Survivor區。然后整理Survivor的兩個區。這種方式的GC是對年輕代的Eden區進行,不會影響到年老代。因為大部分對象都是從Eden區開始的,同時Eden區不會分配的很大,所以Eden區的GC會頻繁進行。因而,一般在這里需要使用速度快、效率高的算法,使Eden去能盡快空閑出來。

對整個堆進行整理,包括Young、Tenured和Perm。Full GC因為需要對整個塊進行回收,所以比Scavenge GC要慢,因此應該盡可能減少Full GC的次數。在對JVM調優的過程中,很大一部分工作就是對于FullGC的調節。有如下原因可能導致Full GC:

· 年老代(Tenured)被寫滿 · 持久代(Perm)被寫滿 · System.gc()被顯示調用 ·上一次GC之后Heap的各域分配策略動態變化

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美日韩亚洲在线观看| 日本vs亚洲vs韩国一区三区二区| 好吊视频一区二区三区四区| 神马午夜在线视频| 97国产精品| 久久精品亚洲欧美日韩精品中文字幕| 国产精品中文字幕亚洲欧美| 亚洲激情五月| 首页亚洲欧美制服丝腿| 丝瓜av网站精品一区二区 | 日韩欧美美女在线观看| 欧美一区激情| 91欧美极品| 香蕉人人精品| 亚洲tv在线| 日本午夜精品| 亚洲精品福利电影| 黄色亚洲大片免费在线观看| 伊人国产精品| 日本午夜精品视频在线观看| 国产视频网站一区二区三区| 国产精品亚洲一区二区在线观看| 国产精品极品| 欧美日韩少妇| 欧美一区精品| 国模 一区 二区 三区| 日韩欧美精品一区二区综合视频| 精品视频在线你懂得| 九色精品91| 国产精品亲子伦av一区二区三区| 在线看片国产福利你懂的| 婷婷成人基地| 麻豆一区二区99久久久久| 欧美日韩中文字幕一区二区三区| 性欧美精品高清| 国产精品地址| 欧美中文字幕| 中文字幕在线视频网站| 日本中文字幕一区二区| 久久精品中文| 精品亚洲二区| 日韩成人一级| 老司机精品久久| 成人午夜国产| 四虎8848精品成人免费网站| 亚洲天堂免费| 91九色精品| 国产99久久| 国产福利电影在线播放| 日韩手机在线| 午夜在线精品| 亚洲精品电影| 免费观看久久av| 日韩免费福利视频| 成人台湾亚洲精品一区二区| 欧美亚洲一级| 国产伦乱精品| 欧美另类中文字幕| 91精品国产自产在线丝袜啪| 亚洲午夜免费| 日韩一区二区三区在线看| 欧美日韩三区| 亚洲一区欧美二区| 九九久久婷婷| 999国产精品999久久久久久| 精品网站999| 久久久久久一区二区| 精品久久久久中文字幕小说| 久久不见久久见中文字幕免费| 欧美日韩一区二区三区不卡视频 | 免费在线观看日韩欧美| 午夜欧美精品| 丝袜亚洲另类欧美 | 91精品国产91久久久久久黑人| 岛国精品一区| 色偷偷偷在线视频播放| 国产精品v日韩精品v欧美精品网站| 久久国产免费看| 精品久久福利| 国产一在线精品一区在线观看| 亚洲一级影院| 日韩精品中文字幕吗一区二区| 久久激情综合网| 国产一区二区亚洲| 国产视频欧美| 国产精品永久| 日韩在线高清| 一区二区亚洲视频| 久久精品国产99国产精品| 久久久久蜜桃| 国产精品亚洲欧美| 黄色aa久久| 伊人久久大香伊蕉在人线观看热v| 国产乱码精品一区二区亚洲| 成人看片网站| 制服诱惑一区二区| 欧美日韩一视频区二区| 美女av在线免费看| 综合色就爱涩涩涩综合婷婷| 欧美1区2区3| 国产精品女主播一区二区三区| 91精品国产自产在线丝袜啪| 日韩三区在线| 欧美偷窥清纯综合图区| 欧美天堂视频| 国产欧美日韩| 性欧美videohd高精| 国产伦理久久久久久妇女| 久久要要av| 国产高清日韩| 美国欧美日韩国产在线播放| 岛国av在线播放| 久久不卡日韩美女| 日韩综合一区二区三区| 91精品亚洲| 欧美激情视频一区二区三区在线播放| 亚洲v在线看| 在线精品亚洲欧美日韩国产| 国产精品最新| 婷婷精品在线观看| 免费精品视频| 国产精品久久久久久久久久10秀| 亚洲精品欧美| 中文字幕一区二区三区四区久久| 久久婷婷av| 丁香六月综合| 精品中文字幕一区二区三区 | 国产丝袜一区| 久久不射网站| 在线观看免费一区二区| 色88888久久久久久影院| 97久久亚洲| 综合激情视频| 欧美日韩国产一区二区在线观看| 亚洲视频二区| 婷婷综合福利| 日本亚洲欧美天堂免费| 久久精品 人人爱| 国产精品黄色| av资源中文在线| 黑人精品一区| 91精品国产成人观看| 视频福利一区| 久久亚洲成人| 只有精品亚洲| 国产乱论精品| 精品一区二区三区中文字幕| 国产精品一区二区av日韩在线| 国产精选一区| 久久久亚洲一区| 国产综合精品一区| 在线观看视频免费一区二区三区| 日本成人中文字幕在线视频| 国产精品黄色片| 久久精品国产大片免费观看| 国产美女精品| 久久成人高清| 亚洲一区免费| 国产精品hd| 国产伦精品一区二区三区在线播放| 91看片一区| 91精品国产自产在线观看永久∴| 国产真实久久| 视频一区中文字幕| 国产精品视频一区二区三区四蜜臂 | 国产精品普通话对白| 亚洲精品激情| 国产乱码精品一区二区三区四区| 日韩啪啪电影网| 四虎精品永久免费| 超碰在线99| 日韩毛片网站| 免费av一区二区三区四区| 欧美亚洲综合视频| 在线视频观看日韩| 欧美久久亚洲| 亚洲一区二区三区中文字幕在线观看 | 欧美日韩一区二区三区不卡视频| 国产一区二区三区四区| 日韩视频一区| 日韩精品免费一区二区三区| 日韩高清在线观看一区二区| 99免费精品| 国产精品久久观看| 国产劲爆久久| 日本在线观看不卡视频| 日韩一区三区| 中文字幕在线视频久| 国产精品香蕉| 日韩欧美美女在线观看| 羞羞答答国产精品www一本| 日韩精品网站| 亚洲精品一区二区妖精| a国产在线视频| 美女国产精品久久久| 欧美日韩xxxx| 国产精品欧美日韩一区| 亚洲欧洲av| 日本va欧美va精品| 国产九九精品|