JVM的進階學習(GC Roots、JVM調優與參數配置、)

在這裏插入圖片描述

1. GC Roots,可達性分析

在這裏插入圖片描述
從GC roots的對象作爲起始點,從GC Roots對象開始向下搜索,如果一個對象到GCRoots沒有任何引用鏈相連,則說明對象不可用。即給定一個集合的引用作爲根出發,通過引用關係遍歷對象圖,能被遍歷的(可到達的)對象被判斷爲存活,沒有被遍歷的就自然被判斷爲死亡(可以被回收)。
一定是從GC Roots作爲起始點的引用鏈纔會判斷爲存活。
在這裏插入圖片描述

那麼哪些可以作爲GC Roots對象呢?

在這裏插入圖片描述

2、JVM參數

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

1. XX參數的:Boolean型

在這裏插入圖片描述
jps -l查看進行
jinfo -flag + 參數類型+進程號
結果中:+表示開啓,-表示關閉
在這裏插入圖片描述
設值參數開啓:
在這裏插入圖片描述
結果:
在這裏插入圖片描述

2. k,v設值類型

在這裏插入圖片描述
沒修過前:
在這裏插入圖片描述
修改後:
在這裏插入圖片描述
在這裏插入圖片描述
MaxTenuringThreshold = 15 這個參數是年輕代升到養老區活過的次數,更改方法類似上面

也可以用-flags同時設值多個值

在這裏插入圖片描述

題外話:-Xms和-Xmx屬於XX參數

在這裏插入圖片描述

3.如何查看JVM初始化的參數

java -XX:+PrintFlagsInitial(初始的)
java -XX:+PrintFlagsFinal(修改後的)

在這裏插入圖片描述
那麼下面=和:=有什麼區別呢?
在這裏插入圖片描述
=號是沒有被修改過的默認的,:=是被人爲修改或者jvm修改過的

java -XX:PrintCommandLineFlags -version,這個參數可以用來查看使用的哪個垃圾回收器(一共七大垃圾回收器)

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章