首頁 Java java教程 Hotspot--垃圾回收器(JVM)詳細講解

Hotspot--垃圾回收器(JVM)詳細講解

Jul 17, 2017 am 11:51 AM
hotspot 回收 垃圾

  前兩篇《JVM入門-運行時資料區》《JVM常見垃圾回收演算法》所提到的其實JVM規格以及常用的垃圾回收演算法,具體的JVM實作其實不只一種,有JRockitJ9等,當然最著名當屬HotSpot JVM#。以下是HotSpot JVM的整體架構圖,本文著重在HotSpot中的垃圾回收器(Garbage Collector)。

  現有的HotSpot垃圾回收器以及之間的關係和應用範圍如下圖所示:

  其中G1 GC#  其中G1 GC非常顯眼的處於新生代與老年代之間,可以猜測這個G1 GC可同時運用在新生代和老年代,確實可以說G1#是一個劃時代新概念

GC

  在介紹上面的垃圾回收器之前要先說明JVM虛擬機器的Client模式和Server模式,Java所能做的事一是做客戶端簡單說就是GUI#桌面應用程序,二是可以用作伺服器端。兩種模式Client模式啟動快,啟動後效能較差,

Server

模式啟動慢,啟動後效能較高。 Serial GC#-XX##:+UseSerialGC,複製演算法,新生代

  這是一個比較古老的垃圾收集器,我理解它為簡單粗暴,簡單粗暴的方法往往可以處理簡單的環境,事實上Serial GCClient模式下正是如此。它是一個串列的垃圾收集器,串列意味著就算是有多核心處理器也不會有多個執行緒來並行回收,在串列的同時,其它的正常工作執行緒也要停止工作,稱為「Stop the world」。這實際上很好理解,你在清掃垃圾的時候,總不希望有人同時在丟垃圾吧。當然Serial GC在現今的HotSpot JVMServer模式下已經幾乎廢棄。另外,它工作使用垃圾回收的複製演算法工作在##Java

#堆的新生代。   ######

ParNew GC##-#XX:+#Use

##。 ParNewGC複製演算法新代#)   ParNew GC其實是Serial GC的多執行緒版本。上面提到了Serial GC

即使是多核心

CPU的環境下也是單執行緒進行垃圾記憶體的回收。此垃圾收集器側可以做到多線程環境下進行垃圾記憶體的回收,這個多線程也僅僅是垃圾回收的多線程,而不是與用戶線程並發執行。並且只有它能與CMS老年代的垃圾回收器配合使用,而CMS又恰恰是劃時代意義的垃圾回收器,所以當JVM

的老年代垃圾回收器是

CMS的話,新生代的垃圾回收器通常是ParNew GCParallel GC

-XX:+UseParallelGC,複製演算法,新生代)  它有點和ParaNew GC類似,從名字來看也是並行的多執行緒收集器。我們之前提到過,在進行GC的過程中要「Stop the world」

,停頓時間越短當然越好,很多垃圾回收器(包括前兩個)關注的是如何提高停頓時間。而######Parallel GC######關注的則是吞吐量。它關注的是垃圾回收的整體耗時,如果垃圾回收所佔用的整體耗時較短,則吞吐量高,######CPU######就能將越多的時間用於任務的執行上######,###(吞吐量 ###= ######任務運行時間 ######/ ######(任務運行時間 ### ###+ ######垃圾回收時間))###。 ############Serial Old GC###(######-XX:+UseSerialOldGC######,標記######-##### #壓縮演算法,老年代)###############  它是###Serial GC######的老年代版本,同樣也是單線程,也能與## ####Parallel GC######搭配使用作為它的老年代######GC######。 ###############Parallel Old GC###(######-XX######:######+UseParallelOldGC##### #,標記######-######壓縮演算法,老年代)############

  為了避免如果在新生代選擇了Parallel GC#而老年代則只有選擇Serial Old GC#的困境,出現了Parallel GC的舊年代版本——Parallel Old GC。故如果在一些需要高吞吐量的常數利用Parallel GCParallel Old GC組合將會是一個很好的選擇。

☆Concurrent Mark Sweep(CMS) GC #(##-XX:+UseConcMarkSweepGC,標記-清除演算法,老年代)

  CMS GC

幾乎佔據著JVM

  1. #老年代垃圾收集器的半壁江山,它劃時代的意義就是垃圾回收線程幾乎能用戶線程做到同時工作。

  2. 幾乎

  3. 是因為它還是無法做到完全不需要

  4. 「Stop the world」

,只是它盡可能的縮短了停頓時間。 它的整個垃圾回收過程可分為以下4個步驟:##初始標記並發標記重新標記##  這4個步驟初始標記#與

###重新標記######」######需要短暫的######「Stop the world」#######,並發標記的過程實際上就是和使用者執行緒同時工作,也就是######「######一邊丟垃圾,一邊打掃######」######,這樣就會帶來一個問題,如果垃圾的產生是在標記後發生,那麼這次垃圾就只有等到下次再回收。當然等到標記完了過後垃圾自然不會和使用者執行緒產生衝突,而清理過程就能和使用者執行緒同時處理了。對於此垃圾回收器有一個比較顯著且不可避免的一個問題就是它所採用的是######“#############-#####清除# #####」######演算法,也就是說它不同會壓縮存活的對象,這樣就會帶來記憶體空間碎片化的問題,如果出現需要分配一個連續的較大的記憶體空間則只能觸發一次######Full GC######。上一篇《JVM常見垃圾回收演算法》中談到了在新生代的垃圾回收稱為######「Minor GC」######,老年代的垃圾回收稱為###### #「Major GC」######,而######「Full GC」######則是在整個堆上觸發一次垃圾回收,可想而知代價會相當高,而且此時不得不暫停使用者線程,只能針對特定使用場景透過調整######CMS GC######的參數進行調整最佳化。 ###############☆######Garbage-First(G1) GC(-XX:+UseG1GC)##########

  G1 GC較之前所有的垃圾回收器都不同,從開頭的第二幅圖就能看出,它涵蓋了新生代和老年代,或者說僅僅是從邏輯上還保留新生代老年

#################### #”######這種說法,實際上它已不存在記憶體分代,它在######JDK6######中只是實驗版,在###### JDK7u4######過後才正式商用,對於此垃圾回收器我將會單獨對其講解,另外它的論文地址在:######http://citeseerx.ist.psu.edu/ viewdoc/download?doi=10.1.1.63.6386&rep=rep1&type=pdf######。 ##########

以上是Hotspot--垃圾回收器(JVM)詳細講解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何設定win7為wifi熱點 如何設定win7為wifi熱點 Dec 31, 2023 pm 10:14 PM

win7系統是一款被使用者認可的高性能係統。最近很多的win7朋友在問win7怎麼做wifi熱點?今天小編就為大家帶來了win7wifi熱點開啟設定的方法一起來看看吧。 win7怎麼做wifi熱點設定:1、要開啟wifi熱點,首先得要有無線網卡,筆記本是有自帶的,pc的話可以購買一個隨身wifi來分享wifi,這裡就不敘述了;首先按下鍵盤上的windows鍵打開“開始選單”,在其下方的搜尋欄中輸入“cmd”並點擊放大鏡圖示進行搜尋;2、在搜尋結果中找到CMD程式後用滑鼠右鍵點擊開啟選單,選擇“

win10清理系統垃圾的步驟教學 win10清理系統垃圾的步驟教學 Jul 13, 2023 pm 09:53 PM

有些使用者在使用電腦的時候,出現了win10系統清理垃圾的情況,當遇到win10系統清理垃圾這種情況,我們該如何解決呢?如今還有很多用戶不知道如何處理win10系統清理垃圾的情況,那麼接下來就來看看win10清理系統垃圾的步驟教程,大家一起來看看吧。 1、在電腦桌面上,點選“此電腦”,管理。 2、選擇磁碟管理3、選擇你要清理的磁碟,並右鍵選擇屬性。 4、點擊頁面下方的“磁碟清理”按鈕5、在出現的介面中,選擇要清理的文件,點擊“確定”,點擊“刪除文件”即可。以上就是win10清理系統垃圾的步驟教學啦,希望

win10怎麼清理垃圾 教你怎麼清理修復垃圾文件 win10怎麼清理垃圾 教你怎麼清理修復垃圾文件 Jan 12, 2024 am 08:18 AM

電腦使用時間久了C盤中的垃圾檔案越來越來多,垃圾檔案的存在會在一定程度上影響系統的運行速度,所以電腦使用的感覺會越來越慢,為了讓電腦流暢運行,不影響正常的操作,下面,小編這就跟大家展示win10清理垃圾的操作。 win10作為新系統,許多用戶都已經安裝了win10正式版,不過最近不少朋友反映自己安裝了win10後系統盤變得過於擁擠了,導致運行系統的速度越來越慢,那麼該如何去清理win10系統的垃圾呢?下面小編就跟大家分享徹底清理win10系統的方法。 win10怎麼清理垃圾在Windows10桌面上

詳細教你清理win11中D盤的垃圾文件 詳細教你清理win11中D盤的垃圾文件 Jan 05, 2024 pm 11:53 PM

每個用戶基本上多有自己的d盤用來下載軟體,但在最新的win11系統中有很多還是不清楚該怎麼去清理其中的垃圾,所以今天就給你們帶來了win11清理d盤垃圾詳細教程,快來一起學習操作一下。 win11怎麼清理d盤垃圾:1、先進入桌面的此電腦,然後右鍵點選你的d盤。 2、然後點選選單中的「屬性」設定。 3、之後你可以看到一般工具下面的「磁碟清理」功能。 4.最後點選出現的「清理系統檔案」就可以全部解決了。

PHP開發的二手回收網站實現用戶購物車功能 PHP開發的二手回收網站實現用戶購物車功能 Jul 02, 2023 pm 08:25 PM

PHP開發的二手回收網站實現用戶購物車功能隨著網路的發展,線上二手回收市場逐漸興起。為了提升用戶的購物體驗和便利性,我們需要在網站中整合購物車功能。在這篇文章中,我們將介紹如何使用PHP開發一個二手回收網站,並實現使用者購物車功能。首先,我們需要建立一個資料庫來儲存使用者的購物車資訊。我們可以建立一個名為"shopping_cart"的資料庫,並在其中建立一個

菜鳥綠色回收活動升級,每次可領 0.1 元回收金 菜鳥綠色回收活動升級,每次可領 0.1 元回收金 Oct 31, 2023 pm 06:29 PM

本站10月31日消息,菜鳥今年雙11期間將對綠色回收進行升級,除往年持續開展的快遞包裝回收外,服飾、鞋靴和舊書等品類均可回收。菜鳥在前兩年回箱換蛋的基礎上,升級為參與活動領取回收金。 11月1日-20日期間,消費者在菜鳥驛站取件後將快遞包裝留下,再透過現場掃碼或菜鳥App內承諾回箱,以及線上預約回收舊衣等,即可領取回收金。回收的快遞包裝會被用於二次寄件或再生再利用。本站注意到,回收金活動分為三種:回箱、回收和分享回箱(快遞紙箱):0.1元/次,每天每位用戶4次回箱上限回收(舊衣服等物品)的價

win7如何在清理C盤垃圾時確保不影響系統正常運作 win7如何在清理C盤垃圾時確保不影響系統正常運作 Dec 28, 2023 am 09:54 AM

c盤中一般都是裝了我們電腦的一些重要文件,如果不小心刪除了就會直接影響到我們電腦的使用,那麼win7系統下,該怎麼清理C盤的垃圾,才會不誤刪系統文件呢?現在就一起來看看吧。 win7清理c盤垃圾怎麼清理不影響系統1、雙擊電腦圖標,進入資源管理器。 2.右鍵點選C盤,選擇屬性3、點選常規,點選磁碟清理。 4、勾選需要清理的文件點選確定即可。

蘋果回收機器人來到中國:從iPhone中回收鎢和稀土 蘋果回收機器人來到中國:從iPhone中回收鎢和稀土 Apr 22, 2024 pm 12:40 PM

4月22日消息,蘋果大中華區董事總經理葛越在世界地球日到來之際宣布,蘋果的回收機器人Dave和Taz已經抵達中國。她強調,為了響應世界地球日的環保理念,蘋果正與合作夥伴緊密合作,旨在充分利用回收材料,減少環境損害,共同守護我們的地球。蘋果執行長庫克指出,這些先進的回收機器人能夠協助從iPhone中回收鎢和稀土元素等珍貴材料,從而幫助打造下一代Apple產品。根據統計,在2023年,蘋果公司共回收了近4萬噸電子廢棄物。值得一提的是,在所有已售出的Apple產品中,有22%的材料是來自於回

See all articles