999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

JVM虛擬機之Garbage-First垃圾收集器

2019-08-21 03:09:36肖洋
商情 2019年34期

肖洋

【摘要】在JVM(Java Virtual Machine)的研究上,有很多方面的應用,但是在其最基礎的依賴應用上,還要說一說性能管理相關的應用。我們通過對Garbage-First(簡稱G1)的研究,從各個方面總結出G1的優劣勢,讓各個JVM中能更優的選擇相關的垃圾收集器。本文總結了G1相關特性,列舉了部分的應用場景及有利條件,從而給使用者一個更正確的應用場景。

【關鍵詞】垃圾收集器 JVM Garbage-First

一.引言:

自2000年以來,我國的互聯網技術得到了突飛猛進,在相關創新、應用、研究上也有了不同程度的進展。在應用服務器上,選擇垃圾回收器是最重要的環節之一,它不僅僅是有利于程序的研發,在某些場景里,更可能作為與別的應用程序的競爭優勢。

在JVM垃圾收集器歷史發展上,相關的垃圾收集器已經百花齊放了。但是不同垃圾收集器,有不同的優劣勢,也有不同的工作場景,所以,在應用服務器選擇垃圾收集器的同時,也需要選擇恰當的垃圾收集器。

JVM的垃圾收集器,從Serial收集器到ParNew,再到后面先進的CMS(Concurrent Mark Sweep),到現在使用的G1垃圾收集器以及研發階段的Shenandoah都在對相關算法不斷的升級與改造,但是任何算法都不是完美的,只有最合適某一種應用場景的算法,沒有適合所有應用場景的算法。

二.G1收集器

2.1 何為G1垃圾收集器

G1(Garbage-First)垃圾收集器是目前的虛擬機垃圾收集器中比較先進的垃圾收集器之一,在JDK1.7中替換了原本的CMS垃圾收集器[1]。相比較CMS垃圾收集器,G1倍受關注的是收集器在工作時的STW(Stop The World)的時長。G1的優勢非常明顯,并行與并發、分代手機、空間整合、可預測性停頓等等[2]都是G1在發布時不可替代的優勢,這樣就使之成為現在風靡一時的垃圾回收器。

2.2 G1垃圾收集器算法特點

G1垃圾收集器作為現在最流行的垃圾回收器,當然有它一定的優勢。在CMS垃圾機制時期,我們都知道JVM的堆內存,是需要進行Eden區,Servivor區和Old Genaretion區的分配[3]。但是對于G1來說,JVM并不需要分配那么復雜的內存區分配。對象的所有生命周期,都可以在一個區內完成。堆被分成一組相等的堆區域,沒一個區域都是一個連續的虛擬內存區域[4]。G1在對象的生命周期里面,管理著所有對象的年齡,用其來標識該對象的生命活動,是該清除,還是保持不變或者進入下一個生命周期。

在所有的垃圾回收階段,G1都采用標記-清除(Mark-Sweep)的算法進行計算。標記-清除算法,分兩部分,首先對所有可達的存活對象進行標記;然后就是清除,對未標記的對象進行垃圾清理。G1垃圾收集器大部分都是采用的并行方式進行,只有在重新標記和重新清除階段,是STW時間,所以這樣就大大的減少了STW時間。

在垃圾清除完后,所有的空間都是碎片化的,傳統的CMS是不會進行碎片化壓縮[5]。所以,這時候G1就需要對所有碎片化的內存區域進行整理。在最后一次清楚SWT后,堆內存的所有空間程碎片狀態。這時候G1就會將這些碎片內存整理到一個連續的內存,當然,G1是采用分區(Region)的思路,所以在對象的存儲空間上,并不要求是物理內存上的連續,而可以是邏輯上的連續[6]。

三.應用場景

可以認識到G1具備很多優勢,無論是并發,還是碎片整理,但是我們要知道的是G1不是實時的垃圾收集器。G1的第一個重點應用場景為解決堆內存較大的應用程序,堆內存大于6G的堆內存應用的可預測暫停時間為0.5秒。這樣可預測的暫停時間,能使應用程序的運行能更加精準、穩定。

如果應用程序當前使用的是CMS或者ParallelOld,要切換到G1時,需要具備以下幾個特點,將更有利:

1. 超過了一半的堆內存占用了實時數據

2. 對象的rate(分配率)或者promotion(使用率)的差異較大[7]

3. 垃圾收集暫停時長或者內存壓縮時長超過0.5秒

如果具備以上特點的應用程序,有利且建議能從CMS或者ParallelOld切換到G1。

四. 總結

G1對于在未來發展中,能長期替換CMS的JVM垃圾收集器,它有著更好的解決方案,一個是堆內存壓縮,能對堆內存進行密集而且細粒度的自由分配;第二個是能夠預測性的知道STW的時長,這樣在主觀研發上,能更加精準的銜接。

對于JVM的新型垃圾收集器,在未來發展中已經形成了一個新型的垃圾收集器雛形——Shenandoah[8],它具備超低延遲,無論是在500MB內存,還是在500GB內存中,都具備相同STW時間。這樣對于G1來說,在更大的內存中,具備更強的應用性。“沒有最好的算法,只有適用的場景”,這才是真正的垃圾收集器最核心的算法。

參考文獻:

[1]周志明.《深入理解JVM虛擬機》.機械工業出版社 2011.

[2]周志明.《深入理解Java虛擬機:JVM高級特性與最佳實踐(第二版)》 .機械工業出版社 2013.

[3]http://www.cs.umd.edu/~pugh/java/broken.pdf

[4]Sun Microsystems.《Memory Management in the Java HotSpot?Virtual Machine》.2006

[5]https://www.oracle.com/technetwork/java/javase/tech/g1-intro-jsp-135488.html

[6]https://www.oracle.com/technetwork/java/javase/memorymanagement-whitepaper-150215.pdf

[7]https://www.oracle.com/technetwork/java/javase/tech/g1-intro-jsp-135488.html

[8]http://openjdk.java.net/jeps/189

主站蜘蛛池模板: 国产美女自慰在线观看| 亚洲成人在线免费| 日本高清有码人妻| 国产理论一区| 国产成人精品亚洲日本对白优播| 曰AV在线无码| 日韩精品无码一级毛片免费| 91在线日韩在线播放| 91国内视频在线观看| 国产麻豆aⅴ精品无码| 中文字幕av无码不卡免费 | 无码国产偷倩在线播放老年人| 国产传媒一区二区三区四区五区| 国产成人高精品免费视频| 91日本在线观看亚洲精品| 国产精品视频猛进猛出| 久久久久免费精品国产| 日本尹人综合香蕉在线观看| 欧美国产中文| 日韩毛片免费视频| 亚洲精品在线观看91| 久久久久久久久18禁秘| 亚洲一欧洲中文字幕在线| 午夜日b视频| 黄色一及毛片| 日韩欧美中文| 国产精品成人观看视频国产 | 福利在线免费视频| 香蕉综合在线视频91| 国产又色又爽又黄| 九九香蕉视频| 国产乱人伦偷精品视频AAA| 在线国产毛片手机小视频| 美女视频黄又黄又免费高清| 极品私人尤物在线精品首页| 91口爆吞精国产对白第三集| 亚洲成人在线免费| 日韩精品亚洲人旧成在线| 国产精品观看视频免费完整版| 国产成人夜色91| 久久美女精品国产精品亚洲| 亚洲国产日韩欧美在线| 久久久久无码精品| 伊人国产无码高清视频| 国产欧美精品一区二区| 欧美成人怡春院在线激情| 亚洲日韩AV无码一区二区三区人| 一区二区三区毛片无码| 天天综合色天天综合网| 色哟哟精品无码网站在线播放视频| 黄色网页在线观看| 国产午夜无码专区喷水| 凹凸国产分类在线观看| 亚洲成aⅴ人片在线影院八| 尤物午夜福利视频| 国产精品久久久久久久久| 97se亚洲综合| 精品伊人久久久大香线蕉欧美| 在线五月婷婷| 久热中文字幕在线观看| 99久久精品无码专区免费| 91久久青青草原精品国产| 国产精品网址在线观看你懂的| 国产欧美自拍视频| 亚洲国产日韩一区| 91欧洲国产日韩在线人成| 中文字幕一区二区人妻电影| 国产美女主播一级成人毛片| 亚洲αv毛片| 国产人妖视频一区在线观看| 亚洲日产2021三区在线| 亚洲人成色在线观看| 久久性妇女精品免费| 青青草91视频| 久草热视频在线| 久久这里只有精品66| 亚洲国产精品久久久久秋霞影院| 亚洲一区免费看| 日本欧美在线观看| 国产性爱网站| 丁香综合在线| 乱码国产乱码精品精在线播放|