Top

G1SATBCardTableModRefBS クラス関連のクラス (G1SATBCardTableModRefBS, G1SATBCardTableLoggingModRefBS)

これらは, G1CollectedHeap 使用時における Garbage Collection 処理用の補助クラス. より具体的に言うと, BarrierSet の一種 (See: here for details).

なお, これらの Barrier Set を使用する場合, write barrier 処理も元の値を退避しておく処理に変わる (G1GC の Concurrent Mark (snapshot-at-the-beginning 式) がきちんと動くようにするため) (See: here for details).

なお, これらのクラスは以下のような継承関係を持つ (実際に使用されるのは G1SATBCardTableLoggingModRefBS クラス).

クラス一覧(class list)


G1SATBCardTableModRefBS

概要(Summary)

G1GC 用の Barrier Set の基底クラス.

なお, このクラス自体は abstract class であり, 実際に使われるのはサブクラス.

    ((cite: hotspot/src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.hpp))
    // This barrier is specialized to use a logging barrier to support
    // snapshot-at-the-beginning marking.

    class G1SATBCardTableModRefBS: public CardTableModRefBSForCTRS {

内部構造(Internal structure)

コンストラクタは (_kind を G1SATBCT にしている点以外は) CardTableModRefBSForCTRS と同じ.

参考(for your information): G1SATBCardTableModRefBS::G1SATBCardTableModRefBS()

See: here for details

備考(Notes)

G1SATBCardTableModRefBS::enqueue() メソッドは, ポインタ変更時の write barrier 処理を行う.

ただし, これは jni_GetObjectField() や sun.misc.Unsafe から使用されるもので, 通常の write barrier 処理では使用されない (See: here for details).

詳細(Details)

See: here for details


G1SATBCardTableLoggingModRefBS

概要(Summary)

G1SATBCardTableModRefBS クラスの具象サブクラス. 実際に Barrier Set として使用されるのはこのクラス.

    ((cite: hotspot/src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.hpp))
    // Adds card-table logging to the post-barrier.
    // Usual invariant: all dirty cards are logged in the DirtyCardQueueSet.
    class G1SATBCardTableLoggingModRefBS: public G1SATBCardTableModRefBS {

使われ方(Usage)

インスタンスの格納場所(where its instances are stored)

各 CardTableRS オブジェクトの _ct_bs フィールドに(のみ)格納されている.

生成箇所(where its instances are created)

CardTableRS::CardTableRS() 内で(のみ)生成されている.

内部構造(Internal structure)

(CardTableModRefBS の内部構造も参照)

コンストラクタは (_kind を G1SATBCT にしている点以外は) CardTableModRefBSForCTRS と同じ.

参考(for your information): G1SATBCardTableLoggingModRefBS::G1SATBCardTableLoggingModRefBS()

See: here for details

詳細(Details)

See: here for details



This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.