在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/Java/ Java: jstat命令結(jié)果的一些問(wèn)題

Java: jstat命令結(jié)果的一些問(wèn)題

jstat -gccapcity命令里有下列三項(xiàng),是什么意思?

CCSMN 最小壓縮類(lèi)空間大小
CCSMX 最大壓縮類(lèi)空間大小
CCSC 當(dāng)前壓縮類(lèi)空間大小

jstat -gcnew <pid> 里下兩項(xiàng)有何區(qū)別?

TT 持有次數(shù)限制
MTT 最大持有次數(shù)限制

回答
編輯回答
孤毒

什么是壓縮類(lèi)空間(Compressed Class space)?

首先壓縮類(lèi)空間是元數(shù)據(jù)空間metaspace的一部分.

在64位平臺(tái)上, 指向類(lèi)元數(shù)據(jù)的指針可以由32位偏移量 (帶有 UseCompressedOops) 表示。這由命令行標(biāo)志 UseCompressedClassPointers (默認(rèn)啟用) 控制。如果使用 UseCompressedClassPointers, 則類(lèi)元數(shù)據(jù)的可用空間量將固定在 CompressedClassSpaceSize 數(shù)值上。如果 UseCompressedClassPointers 所需的空間超過(guò) CompressedClassSpaceSize, 將拋出一個(gè)具有Compressed class space字樣的 java.lang.OutOfMemoryError異常。

操作: 增加參數(shù) CompressedClassSpaceSize 的大小以關(guān)閉 UseCompressedClassPointers選項(xiàng)。

注意: CompressedClassSpaceSize 的可接受大小有界限。例如, -XX:CompressedClassSpaceSize=4g, 超出可接受的界限將導(dǎo)致消息, 如CompressedClassSpaceSize=4294967296無(wú)效;必須介于1048576和3221225472之間。

注意: 有多種類(lèi)元數(shù)據(jù) -klass 元數(shù)據(jù)和其他元數(shù)據(jù)。只有 klass 元數(shù)據(jù)存儲(chǔ)在由 CompressedClassSpaceSize 限定的空間中。其他元數(shù)據(jù)存儲(chǔ)在 Metaspace 中。

https://docs.oracle.com/javas...

相應(yīng)地:

CCSMN - 對(duì)應(yīng)軟件運(yùn)行過(guò)程中的最小歷史壓縮類(lèi)空間大小
CCSMX - 對(duì)應(yīng)軟件運(yùn)行過(guò)程中的最大壓縮類(lèi)空間大小
CCSC - 當(dāng)前壓縮類(lèi)空間大小

什么是存活周期閾值(Tenuring threshold)?

TT: Tenuring threshold.
MTT: Maximum tenuring threshold.

Java 堆中的每個(gè)對(duì)象都有一個(gè)由垃圾回收 (GC) 算法使用的標(biāo)頭。新生代的空間收集器 (負(fù)責(zé)對(duì)象晉升) 使用此標(biāo)頭中的一些位來(lái)跟蹤幸存的集合對(duì)象的數(shù)量 (32 位 JVM 使用4位, 64 位可能更多)。

在新生代的空間收集過(guò)程中, 每個(gè)對(duì)象都被復(fù)制??梢詫?duì)象復(fù)制到生存空間 (在新生代 GC 之前為空) 或老年代空間。對(duì)于被復(fù)制的每個(gè)對(duì)象, GC 算法增加了它的年齡 (幸存的數(shù)量), 如果年齡高于當(dāng)前的 tenuring 閾值, 它將被復(fù)制 (晉升) 到老年代的空間。如果生存空間已滿, 對(duì)象也可以直接復(fù)制到老年代空間。

對(duì)象按下面的步驟移動(dòng):

  1. 分配在新生代
  2. 從新生代復(fù)制到生存空間(Minor GC)
  3. 從生存空間到生存空間(Minor GC, 這可能發(fā)生數(shù)次)
  4. 從生存空間(或可能新生代) 晉升到老年代空間(Minor GC或Full GC) 實(shí)際的 tenuring 閾值是由 JVM 動(dòng)態(tài)調(diào)整的, 但MaxTenuringThreshold 設(shè)置了一個(gè)上限。

如果設(shè)置 MaxTenuringThreshold=0, 將立即升級(jí)所有對(duì)象。

MaxTenuringThreshold這個(gè)參數(shù)用于控制對(duì)象能經(jīng)歷多少次Minor GC才晉升到老年代.

TT與MTT的區(qū)別

在計(jì)算存活周期這個(gè)閾值時(shí),hotspot會(huì)遍歷所有age的table,并對(duì)其所占用的大小進(jìn)行累積,當(dāng)累積的大小超過(guò)了survivor space的一半時(shí),則以這個(gè)age作為新的存活周期閾值(TT),最后取age和MaxTenuringThreshold(MTT)中更小的一個(gè)值。

2018年7月3日 02:58
編輯回答
枕頭人

應(yīng)該是說(shuō)64位機(jī)器上的 類(lèi)指針壓縮空間(Compressed Class Pointer Space)

參考:

2017年2月1日 08:43