現在已經是2015年了,但對于大多數Java開發人員來說,有兩件事情是仍然是個謎 - 垃圾收集和異性(養殖場被人嘲笑)。因為我不是特別理解java開發的后者,我想我會試著說說前杠,特別是與Java 8的來臨,這個地區發生了許多變化顯著和升級,最重要的是持久代(的PermGen)刪除以及一些令人興奮的新的優化(后面將繼續引用這些)。
java開發_教你認識各種Java垃圾回收器的標準對比
說到垃圾收集,并且很多人都知道它的概念,但也有在日常的程序應用。盡管如此,還是有很多事情我們不明白,這是悲慘的。 JVM它**的誤解就是認為只有一個垃圾收集器,而且它有四個不同收藏家的事實,每個人都有自己的長度。 JVM不會自動選擇一個,這件事情你必須要落在我的肩上,因為不同的收藏家會帶來顯著差異吞吐量和應用程序的暫停時間。
在常見的這四個收集算法是,它們代,它們將承載堆劃分成幾個區域,假設許多堆對象的生命周期的很短,它可以快速地進行恢復出來。演示片有很多內容,所以在這里我要直接談論這些不同的算法,以及他們的長處和短處。
1.串行收集器
串行回收利用是一個最簡單的,你會不會考慮它,因為它主要是針對單線程環境(例如32或Windows)和相對小堆。恢復時間將工作線程都將凍結的所有應用程序,就這一點使得它無法將使用由服務器應用程序。
如何使用它:你可以打開-XX:+ UseSeRIAlGC此JVM參數來使用它。
2.并行/吞吐量收集
接下來是并行收集器(并行收集器)。這是默認的JVM收集器。正如它的名字一樣,它的**優點是,它使用多線程掃描和壓縮堆。它的缺點是,不管該未成年GC的執行或完全GC,將暫停應用程序線程。并行恢復是最適合這些應用程序可以容忍的停頓,它試圖減少因收集的CPU開銷。
3.CMS收藏家
并行收集后是一個收藏家的CMS(并發標記 - **)。這個算法使用java多線程(并發)掃描堆和標記(標記),可以回收不再使用(掃描)物體。 (這些對象老一代的線程的入口點或靜態變量的訪問)當初始標記時,根對象當這個算法并行運行:在這兩種情況下,這種算法將進入“阻止世界”的模式。當一個應用程序更改堆的狀態,使它不得不回頭重新確認自己的標志都是正確的對象。
這樣做的**的問題是收藏家會遇到晉升失敗,這是指競爭條件的出現和新的一代老一代的恢復。如果收集需要被提升到舊的目標的年輕一代,但此時的老一代沒有多余的空間,它只能進行一次STW(停止World)的完整的GC - 而這種情況是CMS是可取的避免。為了確保這種情況不會發生,你要么是增加老一代的大小(或增加整個堆的大小),或者被分配到一些后臺線程的恢復,使得對象分配的速度比賽。
該算法的另一缺點是相對于和平行集電極,CPU資源它使用會更多,它使用多個線程來執行掃描和恢復,以便讓應用程序繼續提供吞吐量更高的水平。對于大多數長期運行過程中,暫停的應用是很不利的他們來說,這時候要考慮使用CMS收集器。然而,這種算法不是默認啟用的。你必須指定-XX:+ UseConcMarkSweepGC來啟用它。假設你的籌碼小于4G,并且要分配更多的CPU資源,避免了應用程序停頓,那么這就是你要選擇一個收藏家的東西。但是,如果堆棧大于4G,您可能更愿意使用這**--G1收集器。
4.G1收藏家
G1(**垃圾)收集器最早是在JDK 7update 4,其目的是不是堆4GB,以更好地支持更多的介紹。 G1收集堆成多個區域,大小不等,從1MB到32MB,并使用多個后臺線程進行掃描。 G1收集器將優先考慮那些最包含垃圾回收的掃描區域,這是它的名字(垃圾**)的由來。這種恢復可以通過-XX:啟用UseG1GC大關。
這種策略減少了后臺線程掃描可能性無用對象堆前未完成已被耗盡,情況收集器將不得不暫停該應用程序,這將導致污水處理廠恢復。另一個好處是,它總是G1堆壓縮,而CMS采集器只有在完整的GC將做到這一點。
在過去的幾年里,一直是爭論的滿場樁,很多開發商從一臺機器模特出身的單個JVM JVM單機多微的服務,基于組件的架構。這是由許多因素,包括組件分離步驟,簡化了部署驅動時,重新加載應用程序的類,以避免產生存儲器的開銷(在這方面的Java 8已改善)。
然而,最重要的是這樣做的,希望避免“阻止世界”在長期堆GC暫停(它需要一個大的回升,幾秒鐘即可完成)。這樣的容器,如碼頭工人技術加速了這一進程,使您可以輕松地部署在同一臺物理計算機上的多個應用程序。
Java的8 G1收藏家
Java的8更新引入了很大的優化G1收集20串重量(字符串重復數據刪除)。因為字符串(包括其內部的char []數組)占據了大部分的堆空間的,這個新的優化旨在使G1集電極可以識別那些重復串堆和它們指向的相同的內部的字符[]數組中,為了避免相同的字符串的多個拷貝作為**利用堆將變低。您可以使用-XX:+ UseStringDeduplication此JVM參數來試試這個功能。
Java的8和**代
Java開發的8**的變化是取消了**的一代,這原本是用來類的元數據,居民字符串,靜態變量分配空間。而以前需要開發針對那些應用程序將加載很多類的具體優化和調整堆的比例。這是真正的許多年,這是許多內存不足異常的根本原因,因此JVM接手這真的再好不過了。即便如此,也不會自行降低發展商申請去耦,以不同的JVM的可能性。學習更多相關資訊或視頻教程歡迎進入課課家教育查詢詳情:http://www.kokojia.com/
資訊來源:http://www.kokojia.com/article/5185.html
|
友情提示:
信息由用戶自行發布,如果發現錯誤或不符合法規或造成侵權,請及時通知本站更正或刪除,具體聯系方式見頁面底部聯系我們,謝謝。 |
當前頁在本站[名站在線]7天內點擊次數(點擊次數為零的日期不顯示): |
信息評估: |
(還沒有網友對該信息作出評估,你想為該信息提供第一個評估嗎?) |
6FC5298-6AD10-0JP3現貨.便宜6FC5298-6AD10-0JP36FC5298-6AD10-0JP3中海德福建工業設備有限公司
全新原裝正品報價15880012081
庫存現貨報價0591-83562354
中海德qq客服2851617308
業務部門經理李莫愁
給你好價格
給你分享好文章
1.烏龜在地上是跑不過兔子,可烏龜在水里永遠比兔子游的快。
不要放錯自己的位置。
2.烏鴉學老鷹去抓羊,結果被羊毛卷住了爪子,**被牧羊人活活的摔死了。
不是每一種鳥都叫鷹,認清自己你才能活下去。
3.有**螞蟻去和大...上海奉賢倉庫復合骨料耐磨地坪工程有限公司上海奉賢倉庫復合骨料耐磨地坪工程有限公司400-0709-910請撥打400-0709-910電話,永堅地坪公司
中涂大砂非常明顯、凸出,需要打磨,一方面可以找平,一方面也可以節約材料。
施工中涂二道過程中,上方管道突然漏煤渣,我工人及時閃躲,未造成人員傷亡,但會對地坪有所影響,我方處理辦法是煤渣覆蓋區暫時空下,等第二天中涂干了之后在進行清掃、打磨、吸塵,然后開始補中涂、批涂。
四、環氧地坪批涂問題
中涂過后要進行打磨,打磨...6FC5398-6AP10-3PA0現貨.便宜6FC5398-6AP10-3PA06FC5398-6AP10-3PA0中海德福建工業設備有限公司
全新原裝正品報價15880012081
庫存現貨報價0591-83562354
中海德qq客服2851617308
業務部門經理李莫愁
給你好價格
給你分享好文章
1.烏龜在地上是跑不過兔子,可烏龜在水里永遠比兔子游的快。
不要放錯自己的位置。
2.烏鴉學老鷹去抓羊,結果被羊毛卷住了爪子,**被牧羊人活活的摔死了。
不是每一種鳥都叫鷹,認清自己你才能活下去。
3.有**螞蟻去和大...上海奉賢倉庫丙烯酸水泥地坪工程有限公司上海奉賢倉庫丙烯酸水泥地坪工程有限公司400-0709-910請撥打400-0709-910電話,永堅地坪公司
防靜電地板,咱們有必要首要思考涂層防靜電目標;其次,和抗壓強度,抗拉強度和耐磨性,以及一般的耐化學性。因而,在配方中,首要選用環氧樹脂為基料,增加導電資料,填料,溶劑和增加劑,形成防靜電地坪涂料。防靜電地坪涂料種類可分為自流坪涂料和溶劑型涂料基土要求均勻密實,選擇原狀土或回填土;當地基為軟弱基礎時,要用碎石、卵...6FC1112-0AA00-0AY8現貨.便宜6FC1112-0AA00-0AY86FC1112-0AA00-0AY8中海德福建工業設備有限公司
全新原裝正品報價15880012081
庫存現貨報價0591-83562354
中海德qq客服2851617308
業務部門經理李莫愁
給你好價格
給你分享好文章
1.烏龜在地上是跑不過兔子,可烏龜在水里永遠比兔子游的快。
不要放錯自己的位置。
2.烏鴉學老鷹去抓羊,結果被羊毛卷住了爪子,**被牧羊人活活的摔死了。
不是每一種鳥都叫鷹,認清自己你才能活下去。
3.有**螞蟻去和大...
|
|
|
|
|