7.7.3 -XX:[+|-]PrintCodeCacheInfo
コードキャッシュ領域の使用量を出力するかどうかを指定します。また、使用量がしきい値に達したことを知らせるメッセージをJavaVMログファイルに出力するかどうかを指定します。
説明
コードキャッシュ領域の使用量を出力するかどうかを指定します。また、使用量がしきい値に達したことを知らせるメッセージをJavaVMログファイルに出力するかどうかを指定します。コードキャッシュ領域は、JITコンパイルによって生成されたJITコンパイルコードが格納される領域です。JavaVMは、呼び出し回数やループ回数が多いJavaメソッドをJITコンパイルして実行することで、処理の高速化を行います。
このオプションを有効にすると、GC発生時、コードキャッシュ領域の使用量が拡張verbosegc情報に出力されます。また、コードキャッシュ領域の使用量がしきい値に達したとき、メッセージが出力されます。
しきい値は「コードキャッシュ領域の最大サイズ×-XX:CodeCacheInfoPrintRatioオプションの値÷100」です。コードキャッシュ領域の最大サイズは、-XX:ReservedCodeCacheSizeオプションに指定します。
-XX:-HitachiVerboseGCオプションを指定している場合でも、javagcコマンドの-vオプションや-sオプションによって出力する拡張verbosegc情報には、コードキャッシュ領域の使用量が出力されます。
- 前提オプション
-
-
-XX:+HitachiVerboseGC
-
- 関連オプション
-
-
-XX:+HitachiCommaVerboseGC
-
-XX:CodeCacheInfoPrintRatio
-
- 出力形式
-
コードキャッシュ領域の使用量の出力形式を次に示します。
[id] <date> (Skip Full:full_count, Copy:copy_count) [gc_kind gc_info, gc_time secs][Eden: eden_info][Survivor: survivor_info] [Tenured: tenured_info][Metaspace: metaspace_info] [class space: class_space_info] [cause:cause_info] [User: user_cpu secs] [Sys: system_cpu secs][IM: jvm_alloc_size, mmap_total_size, malloc_total_size] [TC: thread_count][DOE: doe_alloc_size, called_count] [CCI: cc_used_sizeK, cc_max_sizeK, cc_infoK]
このオプションによって出力される項目と出力内容を次に示します。
出力項目
出力内容
cc_used_size
GC発生時のコードキャッシュ領域の使用サイズ。単位はキロバイトです。
cc_max_size
コードキャッシュ領域の最大サイズ。単位はキロバイトです。
cc_info
保守情報。
コードキャッシュ領域の使用量がしきい値に達したことを知らせるメッセージの出力形式を次に示します。
[cc_id]<cc_date>CodeCache usage has exceeded the threshold. [cc_used_sizeK, cc_max_sizeK, cc_infoK]
メッセージの出力内容を次に示します。
出力項目
出力内容
cc_id
CCI(JavaVMログファイル識別子)。
cc_date
JITコンパイルを実行した日時。
cc_used_size
JITコンパイル後のコードキャッシュ領域の使用サイズ。単位はキロバイトです。
cc_max_size
コードキャッシュ領域の最大サイズ。単位はキロバイトです。
cc_info
保守情報。
書式
-XX:[+|-]PrintCodeCacheInfo
指定できる値
型:String
- -XX:+PrintCodeCacheInfo
-
コードキャッシュ領域の使用量を出力します。
また、コードキャッシュ領域の使用量がしきい値に達したことを知らせるメッセージを出力します。
- -XX:-PrintCodeCacheInfo
-
コードキャッシュ領域の使用量を出力しません。
また、コードキャッシュ領域の使用量がしきい値に達したことを知らせるメッセージを出力しません。
デフォルト値
- 定義項目の省略
-
-XX:+PrintCodeCacheInfo
出力例
コードキャッシュ領域の使用量の出力例を次に示します。
- 出力例1(-XX:+HitachiVerboseGCオプションのSerialGCの場合)
-
[VGC]<Thu Oct 02 10:38:53.658 2014>(Skip Full:1,Copy:0) [Full GC 770K->682K(8064K), 0.0050003 secs][DefNew::Eden: 88K->0K(2304K)] [DefNew::Survivor: 0K->0K(256K)][Tenured: 681K->682K(5504K)] [Metaspace: 3634K(4492K, 4492K)->3634K(4492K, 4492K)] [class space: 356K(388K, 388K)->356K(388K, 388K)] [cause:System.gc][User: 0.0000000 secs][Sys: 0.0000000 secs] [IM: 11944K, 12448K, 0K][TC: 22][DOE: 0K, 0][CCI: 1173K, 245760K, 2496K]
- 出力例2(-XX:+HitachiVerboseGCオプションのG1GCの場合)
-
-
GCに関するログ
[VG1]<Thu Oct 02 10:38:56.193 2014> [Full GC 753K/2048K(8192K)->678K/1024K(8192K), 0.0097901 secs][Status:-] [G1GC::Eden: 1024K(2048K)->0K(2048K)][G1GC::Survivor: 0K->0K] [G1GC::Tenured: 1024K->1024K][G1GC::Humongous: 0K->0K] [G1GC::Free: 6144K->7168K] [Metaspace: 3634K(4492K, 4492K)->3634K(4492K, 4492K)] [class space: 356K(388K, 388K)->356K(388K, 388K)] [cause:System.gc] [RegionSize: 1024K][Target: 0.2000000 secs][Predicted: 0.0000000 secs] [TargetTenured: 0K][Reclaimable: 0K(0.00%)][User: 0.0000000 secs] [Sys: 0.0000000 secs][IM: 20459K, 21920K, 0K][TC: 35][DOE: 0K, 0] [CCI: 1172K, 245760K, 2496K]
-
Concurrent Markingに関するログ
[VCM]<Wed Jul 24 11:45:20 2013>[Concurrent Root Region Scan Start] [User: 0.0000000 secs][Sys: 0.0000000 secs] [VCM]<Wed Jul 24 11:45:20 2013>[Concurrent Root Region Scan End] [User: 0.0126134 secs][Sys: 0.0146961 secs] [VCM]<Wed Jul 24 11:45:20 2013>[Concurrent Mark Start][User: 0.0000000 secs] [Sys: 0.0000000 secs] [VCM]<Wed Jul 24 11:45:34 2013>[Concurrent Mark End][User: 0.0156250 secs] [Sys: 0.2495800 secs]
-
- 出力例3(-XX:+HitachiCommaVerboseGCオプションのSerialGCの場合)
-
VGC,Thu Oct 02 10:38:52.442 2014,1,0,0,Full GC,770,682,8064,0.0040002,88,0,2304, 0,0,256,681,682,5504,3634,3634,4492,3634,3634,4492,356,356,388,356,356,388,1,0. 0000000,0.0000000,11913,12448,0,22,0,0,1173,245760,2496
- 出力例4(-XX:+HitachiCommaVerboseGCオプションのG1GCの場合)
-
-
GCに関するログ
VG1,Thu Oct 02 10:38:54.920 2014,Full GC,753,2048,8192,678,1024,8192,0.0064767, -,1024,2048,0,2048,0,0,1024,1024,0,0,6144,7168,3634,3634,4492,3634,3634,4492, 356,356,388,356,356,388,1,1024,0.2000000,0.0000000,0,0,0.00,0.0000000, 0.0000000,20459,21920,0,35,0,0,1171,245760,2496
-
Concurrent Markingに関するログ
VCM,Fri Jul 26 21:35:50 2013,Concurrent Mark Start,0.0000000,0.0000000 VCM,Fri Jul 26 21:35:50 2013,Concurrent Mark End,0.0124532,0.0245698
-
コードキャッシュ領域の使用量がしきい値に達したことを知らせるメッセージの出力例を次に示します。
- 出力例
-
[CCI]<Wed Dec 26 14:27:53 2012>CodeCache usage has exceeded the threshold. [39358K, 49152K, 39360K]
注意事項
-
コードキャッシュ領域の使用量がしきい値に達した状態で推移している場合、JavaメソッドがJITコンパイルされてもメッセージは出力されません。
一方、コードキャッシュ領域の使用量がしきい値未満まで下がったあと、JavaメソッドがJITコンパイルされたことによって再びコードキャッシュ領域の使用量がしきい値に達した場合には、メッセージが出力されます。
-
システムが使用するコードキャッシュ領域は32ビット版で最大500キロバイト、64ビット版で最大2メガバイトです。そのため、システムのコードキャッシュ領域の使用量によっては、コードキャッシュ領域を最大サイズまで使用していない場合でも、コードキャッシュ領域が枯渇することがあります。
また、コードキャッシュ領域の使用量のしきい値に大きな値を指定している場合、メッセージを出力する前にコードキャッシュ領域が枯渇する場合があります。コードキャッシュ領域が枯渇する前にメッセージを出力したいときは、「コードキャッシュ領域の最大サイズ−しきい値」の値が4メガバイト以上になるように、-XX:CodeCacheInfoPrintRatio(コードキャッシュ領域使用率指定オプション)の値を指定してください。