TLAB
Javaの小さなオブジェクトは、TLAB (Thread Local Area Buffer)に割り当てられます。TLABは、新しいオブジェクトが割り当てられている小さなメモリー領域です。TLABが一杯になると、スレッドが新しいものを取得します。
jps
jps ツールは、ターゲットシステム上で計測された HotSpot Java 仮想マシン (JVM) を一覧表示します。このツールで表示できるレポート情報は、アクセス権を持った JVM に関するものに限定されます。
jstat
jstatコマンドは、設置されているJava HotSpot VMのパフォーマンス統計情報を表示します。 ターゲットJVMは、仮想マシン識別子またはvmidオプションによって識別されます。
jinfo
指定されたJavaプロセスに関するJava構成情報を出力します。 構成情報は、Javaシステム・プロパティとJVMコマンド行フラグで構成されます。
実装確認
サンプルコード
public class TLABTest {
public static void main(String[] args) {
System.out.println("TLABTest start");
try {
Thread.sleep(1000000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
実行結果
TLABTest start...
- jpsでJava 仮想マシン (JVM) 一覧を確認する
PS C:\Users\XXXXX> jps
28848 Jps
17700 Eclipse
22388 TLABTest
PS C:\Users\ts-xinrong.deng>
- jinfoでTLAB使用状況を確認する
PS C:\Users\XXXXX> jinfo -flag UseTLAB 22388
-XX:+UseTLAB
+UseTLABはTLABが使用中のことを示しています
- jstatでJava VMのガベージコレクトされたヒープの動作に関する統計情報を確認する
PS C:\Users\XXXXX> jstat -gc -h 5 22388 2000
S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT
10752.0 10752.0 0.0 0.0 65024.0 3901.5 173568.0 0.0 4480.0 775.7 384.0 76.0 0 0.000 0 0.000 0.000
10752.0 10752.0 0.0 0.0 65024.0 3901.5 173568.0 0.0 4480.0 775.7 384.0 76.0 0 0.000 0 0.000 0.000
10752.0 10752.0 0.0 0.0 65024.0 3901.5 173568.0 0.0 4480.0 775.7 384.0 76.0 0 0.000 0 0.000 0.000
10752.0 10752.0 0.0 0.0 65024.0 3901.5 173568.0 0.0 4480.0 775.7 384.0 76.0 0 0.000 0 0.000 0.000
10752.0 10752.0 0.0 0.0 65024.0 3901.5 173568.0 0.0 4480.0 775.7 384.0 76.0 0 0.000 0 0.000 0.000
S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT
10752.0 10752.0 0.0 0.0 65024.0 3901.5 173568.0 0.0 4480.0 775.7 384.0 76.0 0 0.000 0 0.000 0.000
10752.0 10752.0 0.0 0.0 65024.0 3901.5 173568.0 0.0 4480.0 775.7 384.0 76.0 0 0.000 0 0.000 0.000
10752.0 10752.0 0.0 0.0 65024.0 3901.5 173568.0 0.0 4480.0 775.7 384.0 76.0 0 0.000 0 0.000 0.000
上記はJava VMの世代ごとのメモリー容量を確認できます