麻豆黑色丝袜jk制服福利网站-麻豆精品传媒视频观看-麻豆精品传媒一二三区在线视频-麻豆精选传媒4区2021-在线视频99-在线视频a

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > Java培訓:垃圾收集器——串行與并行、CMS與G1

Java培訓:垃圾收集器——串行與并行、CMS與G1

來源:千鋒教育
發布人:xqq
時間: 2023-12-10 00:42:31 1702140151

眾所周知,垃圾收集是影響性能的事情之一,所以我們應該努力學習GC的基本知識,特別是因為Java8在這一領域做了一些重大的更改和改進,尤其是隨著PermGen的刪除和一些新的令人興奮的優化。通過參加java培訓,學習最新java技能,可以讓你的實力一直保持領先水平,提升行業競爭力。

當我們談論垃圾收集時,絕大多數人都知道這個概念,并在日常編程中使用它。即便如此,我們還是有很多不理解的地方。關于JVM最大的誤解之一是它有一個垃圾收集器,實際上它提供了四個不同的垃圾收集器,每個垃圾收集器都有自己獨特的優點和缺點。選擇使用哪一個是由你自己決定的,吞吐量和應用程序暫停之間的差異可能是巨大的。

這四種垃圾收集算法的共同點是,它們是分代的,這意味著它們將托管堆劃分為不同的部分,使用了一種古老的假設,即堆中的大多數對象都是短暫的,應該快速回收。

1.串行收集器

串行收集器是最簡單的,也是你可能不會使用的,因為它主要是為單線程環境(例如32位或Windows)和小堆設計的。這個收集器在工作時會凍結所有應用程序線程,這使得它在任何情況下都不能在服務器環境中使用。在java培訓中,有很多關于Java開發工具、庫和框架的培訓課程,在專業老師的教學指導下,可以很全面地掌握相關知識和技能。

如何使用它:你可以通過打開-XX:+UseSerialGCJVM參數來使用它

2.并行/吞吐量收集器

接下來是并行收集器。這是JVM的默認收集器。就像它的名字一樣,它最大的優點是使用多個線程來掃描和壓縮堆。并行收集器的缺點是,當執行次要或完整GC收集時,它將停止應用程序線程。并行收集器最適合那些可以容忍應用程序暫停并試圖優化收集器導致的較低CPU開銷的應用程序。

3.CMS收集器

并行收集器的后續是CMS收集器(“并發標記掃描”)。該算法使用多個線程(“并發”)在堆中掃描(“標記”)可回收的未使用對象(“掃描”)。在兩種情況下,該算法將進入“停止世界”(STW)模式:當初始化根(舊一代中可以從線程入口點或靜態變量訪問的對象)的初始標記時,以及當應用程序在算法同時運行時更改了堆的狀態時,迫使它返回并做一些最后的潤色,以確保它標記了正確的對象。對Java感興趣的同學可以參加java培訓,可以獲得快速有效的學習。

使用此收集器時,最大的問題是遇到升級失敗,即在收集年輕一代和老年一代之間發生競爭的情況。如果收集器需要將年輕的對象提升到舊一代,但沒有足夠的時間騰出空間來清除它,它將不得不首先這樣做,這將導致完整的STW收集——這正是CMS收集器想要防止的事情。為了確保這種情況不會發生,你可以增加舊一代的大小(或者整個堆的大小),或者為收集器分配更多的后臺線程,讓他與對象分配的速率競爭。

與并行收集器相比,該算法的另一個缺點是,它使用更多的CPU,通過使用多個線程執行掃描和收集,為應用程序提供更高級別的連續吞吐量。對于大多數不利于應用程序凍結的長期運行的服務器應用程序,這通常是一個很好的權衡。即便如此,該算法在默認情況下也不會啟用。你必須指定XX:+USeParNewGC才能真正啟用它。如果你愿意分配更多的CPU資源來避免應用程序暫停,假設你的堆大小小于4Gb,這就是你可能想要使用的收集器。然而,如果它大于4GB,你可能會想使用最后一種算法——G1收集器。想學習java技術的同學,不妨報個Java培訓班,有明確清晰的學習路線,理論知識+實戰操作,可以獲得快速提升。

4.G1收集器

JDK7更新4中引入的垃圾優先收集器(G1)旨在更好地支持大于4GB的堆。G1收集器利用多個后臺線程來掃描它劃分為區域的堆,范圍從1MB到32MB(取決于堆的大小)。G1收集器旨在首先掃描那些包含最多垃圾對象的區域,并將其命名為(垃圾優先)。此收集器是使用–XX:+UseG1GC標志打開的。

此策略降低了在后臺線程完成對未使用對象的掃描之前堆被耗盡的可能性,在這種情況下,收集器將不得不停止應用程序,這將導致STW收集。G1還有另一個優點,那就是它在移動中壓縮了堆,而CMS收集器只在完整的STW收集過程中才這樣做。在java培訓中,不僅有理論知識的課程,還有大量實戰項目學習,讓你在實踐中真正掌握Java知識和技能。

在過去的幾年里,大型堆一直是一個相當有爭議的領域,許多開發人員從每臺機器的單個JVM模型轉向每臺機器有多個JVM的更微服務、組件化的架構。這是由許多因素驅動的,包括希望隔離不同的應用程序部分,簡化部署,避免將應用程序類重新加載到內存中通常會帶來的成本(這在Java8中實際上得到了改進)。

即便如此,在JVM中,這樣做的最大驅動因素之一源于避免大型堆中出現的長時間“停止世界”暫停(在大型集合中可能需要幾秒鐘)的愿望。Docker等容器技術也加速了這一進程,使你能夠相對輕松地在同一物理機器上部署多個應用程序。

總結

這些收集器中的每一個都通過一系列切換和開關進行了不同的配置和調整,每個都有可能增加或減少吞吐量,所有這些都基于你的應用程序的特定行為。參加java培訓是入門學習的最佳選擇,有經驗豐富的專業老師面授指導教學,通過理論結合實戰的方式教授java基礎知識,幫助你更好的理解與運用java。

tags: Java培訓
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
主站蜘蛛池模板: 国产猛男猛女超爽免费视频| 免费动漫人物扑克软件网站| 野花社区视频在线观看| 91精品国产91久久久久久| 7m凹凸精品分类大全免费| 大伊香蕉精品一区视频在线| 低头看我是怎么c哭你的| 啊轻点灬大ji巴太粗小说太男| 91精品国产91久久久久久| 一级特黄aaa大片在| 日本japanese丰满护士| а√最新版在线天堂| 美女扒开尿口让男生捅| 国产特级毛片aaaaaa毛片| 日韩免费三级电影| 日本三级免费观看| 午夜影院欧美| loveme动漫在线观看免费| 麻豆床传媒| 男彩虹用的app小蓝| 大美香蕉伊在看欧美| a级毛片在线观看| 中文字幕在线观看一区二区三区| 蜜柚视频影院在线播放| 18末成年禁止观看试看一分钟| 久久精品国产99国产精品澳门| 干狠狠| 男生插入女生下面视频| 成人免费看www网址入口| 亚洲高清成人欧美动作片 | 日本理论午夜中文字幕| 高h视频在线免费观看| 香港黄页亚洲一级| 久久国产加勒比精品无码| 精品国产柚木在线观看| 真实的和子乱拍免费视频| 欧美一级视| 野花日本免费观看高清电影8| 日韩在线视频线视频免费网站| 香蕉视频在线观看www| 国产99久久久久久免费看|