日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Eclipse的MAT的支配树

發布時間:2023/12/20 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Eclipse的MAT的支配树 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

學習 尚硅谷 宋紅康 JVM從入門到精通 的學習筆記

概念

MAT提供了一個稱為支配樹的對象圖.支配樹體現了對象實例之間的支配關系(支配關系就是我支配你, 你是我管轄的,你做什么都要先經過我,那么就是我支配你.).在對象的引用圖中,所有指向對象B的路徑都經過對象A,則認為對象A支配對象B.

如果對象A是離對象B最近的一個支配對象,就認為對象A為對象B的直接支配者.

比如說這個H,我要訪問H的話,必須要通過C,那么C就是支配者 ,F和G不是,因為你訪問H的時候,你可以不經過F,直接去經過G, 你訪問H的時候,你也可以不經過G,直接經過F.
支配樹是基于對象間的引用圖所建立的,有下面的基本性質:

  • 對象A的子樹(所有被對象A支配(只有通過對象A才能訪問的到)的對象集合)表示對象A的保留集(retained set),即深堆.
  • 如果對象A支配對象B,那么對象A的直接支配者也支配對象B,因為對象A支配對象B,那么說明要想經過對象B,就必須要走對象A的鏈路,那么如果有對象C是對象A的直接支配者,走鏈路只走對象A,那么這個對象C也是只走對象B
    *支配樹的邊與對象引用圖的邊不直接對應的,

上圖所示:左邊圖標識對象引用圖,右邊圖標識左圖所對應的支配樹.對象A和B由根對象直接支配,由于在到對象C的路徑中,可以經過A,也可以經過B,因此對象C的直接支配者也是根對象.對象F與對象D互相引用,因為到對象F的所有路徑必然經過對象D,因此,對象D是對象F的直接支配者.而到對象D的所有路徑中,必然經過對象C,即使是從對象F到對象D的引用,從根節點觸發,也要經過對象C的,所以對象D的直接支配者為對象C.

同理,對象E支配對象G,到達對象Hd可以通過對象D,也可以通過對象E,因此對象D和E都不能支配對象H,而經過對象C既可以到達D也可以到達E,因此對象C為對象H的直接支配者.

注意:
跟隨我一起來理解如何從“對象引用圖—》支配樹”,首先需要理解支配者(如果要到達對象B,畢竟經過對象A,那么對象A就是對象B的支配者,可以想到支配者大于等于1),然后需要理解直接支配者(在支配者中距離對象B最近的對象A就是對象B的直接支配者,你要明白直接支配者不一定就是對象B的上一級,然后直接支配者只有一個),然后還需要理解支配樹是怎么畫的,其實支配樹中的對象與對象之間的關系就是直接支配關系,也就是上一級是下一級的直接支配者,只要按照這樣的方式來作圖,肯定能從“對象引用圖—》支配樹”

在Eclipse MAT工具中如何查看支配樹:

上圖中Object數組里面只有8個對象,原因是因為8個對象是這個Student對象自己獨有的,如果這個Student對象被垃圾回收了,那么支配樹下面的Object數組里面的8個對象也會被垃圾回收掉.

總結

以上是生活随笔為你收集整理的Eclipse的MAT的支配树的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。