日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

大家在用jvm診斷工具,比如Eclipse MAT或者 Jprofiler分析堆內存的時候,都會看到一些概念或者關鍵詞,如Shallow Heap, Retained Heap, Dominator Tree等,你們知道他們是干嘛的嗎?

概述

大家在用jvm診斷工具,比如Eclipse MAT或者 Jprofiler分析堆內存的時候,都會看到一些概念或者關鍵詞,如Shallow Heap, Retained Heap, Dominator Tree等,你們知道他們是干嘛的嗎?

Eclipse MAT相關截圖:

 

圖片

 

 

圖片

 

jprofile相關截圖:

 

圖片

 

 

圖片

 

雖然上面兩個工具有點差異,但是他們表達的都是同一個意思。

淺堆(Shallow Heap、Shallow Size)

淺堆是指一個對象所消耗的內存。在32位系統中,一個對象引用會占據4個字節,一個int類型會占據4個字節,long型變量會占據8個字節,每個對象頭需要占用8個字節。根據堆快照格式不同,對象的大小可能會同8字節進行對齊。

以jdk7中String為例:2個int值共占8字節,對象引用占用4字節,對象頭8字節,合計20字節,向8字節對齊,故占24字節。

int

hash32

0

int

hash

0

ref

value

alvinalvinalvina

這24字節為String對象的淺堆大小。它與String的value實際取值無關,無論字符串長度如何,淺堆大小始終是24字節。

深堆(Retained Heap、Retained Size)

這里引入一個保留集(Retained Set)的概念,什么是保留集呢? 當對象A被垃圾回收后,可以被釋放的所有的對象集合(包括對象A本身),即對象A的保留集可以被認為是只能通過對象A被直接或間接訪問到的所有對象的集合。通俗地說,就是指僅被對象A所持有的對象的集合。

深堆是指對象的保留集中所有的對象的淺堆大小之和,也就是從堆中移除這個實例將釋放的內存量。

注意: 淺堆指對象本身占用的內存,不包括其內部引用對象的大小。一個對象的深堆指只能通過該對象訪問到的(直接或間接)所有對象的淺堆之和,即對象被回收后,可以釋放的真實空間。

 

圖片

 

舉個例子:對象A引用了C和D,對象B引用了C和E。對象A的淺堆大小只是A本身,A的深堆大小為A與D之和,因為對象C還可以被對象B訪問,所以不在對象A的深堆范圍之內。那A的實際大小是多大呢?在日常開發中,A對象的實際大小是A,C,D相加的大小。 所以說,淺堆、深堆、實際大小都是不一樣的。

支配樹(Dominator Tree)

支配樹可以用來顯示堆轉儲中最大的對象。樹的下一層列出了如果刪除對父節點的所有傳入引用將被垃圾回收的對象。

支配樹是一個強大的工具,用于研究哪些對象保持哪些對象存活。同樣,可以根據類裝入器(例如組件)和包對樹進行分組,以簡化分析。

那究竟什么是支配樹呢?

在對象引用圖中,所有指向對象B的路徑都經過對象A,則認為對象A支配對象B。如果對象A是離對象B最近的一個支配對象,則認為對象A為對象B的直接支配者。支配樹是基于對象間的引用圖所建立的。

舉個例子:

 

圖片

 

左圖表示對象引用圖,右圖表示左圖所對應的支配樹。

  • 對象A和B由根對象直接支配,由于在到對象C的路徑中,可以經過A,也可以經過B,因此對象C的直接支配者也是根對象。
  • 對象F與對象D相互引用,因為到對象F的所有路徑必然經過對象D,因此,對象D是對象F的直接支配者。
  • 而到對象D的所有路徑中,必然經過對象C,即使是從對象F到對象D的引用,從根節點出發,也是經過對象C的,所以,對象D的直接支配者為對象C。
  • 同理,對象E支配對象G。到達對象H的可以通過對象D,也可以通過對象E,因此對象D和E都不能支配對象H。
  • 經過對象C既可以到達D也可以到達E,因此對象C為對象H的直接支配者。

總結

本文總結了jvm診斷工具比如jprofiler、eclipse mat等一些共通的概念,希望對大家有幫助。

分享到:
標簽:JVM
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定