G1CollectorPolicy クラス内で使用される補助クラス.
毎回の GC で生き残ったオブジェクトの割合(生存率)を記録しておくためのクラス. G1CollectorPolicy やその中で使用される CollectionSetChooser 内で使用されている.
((cite: hotspot/src/share/vm/gc_implementation/g1/survRateGroup.hpp))
class SurvRateGroup : public CHeapObj {
以下の箇所に(のみ)格納されている.
G1CollectorPolicy::G1CollectorPolicy() 内で(のみ)生成されている.
定義されているフィールドは以下の通り.
デバッグ用(開発時用)のフィールド (備考参照).
デバッグ用(開発時用)のフィールド (備考参照).
デバッグ用(開発時用)のフィールド (備考参照).
develop オプションである G1YoungSurvRateNumRegionsSummary オプションが 1 以上の値に変更されている場合, 以下のフィールドに NumberSeq オブジェクト (及びその長さ情報) が格納されるようになる (G1YoungSurvRateNumRegionsSummary オプションが SurvRateGroup にコンストラクタ引数として渡されている. See: G1CollectorPolicy::G1CollectorPolicy()).
この NumerSeq に溜められた情報は SurvRateGroup::print_surv_rate_summary() でのみ使用されている. そして, この関数は現在は以下のパスで(のみ)呼び出されている.
G1CollectedHeap::do_collection_pause_at_safepoint() -> G1CollectedHeap::print_tracing_info() (<= ExitAfterGCNum オプションが指定されている場合にのみ呼び出す) -> G1CollectorPolicy::print_yg_surv_rate_info() -> SurvRateGroup::print_surv_rate_summary() (<= #ifndef PRODUCT 時にのみ呼び出す)
See: here for details
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.