保守運用機能のためのクラス (AllocationProfiler クラス用の補助クラス). (See: AllocationProfiler)
直近の GC が完了した時点でのヒープの終端(top 位置)を覚えておくためのクラス (この情報は, 直近の GC 以降に増えたオブジェクトだけを対象に何らかの処理を行いたい, という際に使われる).
((cite: hotspot/src/share/vm/memory/watermark.hpp))
// A water mark points into a space and is used during GC to keep track of
// progress.
...
class WaterMark VALUE_OBJ_CLASS_SPEC {
OneContigSpaceCardGeneration オブジェクトの _last_gc フィールドに(のみ)格納されている.
((cite: hotspot/src/share/vm/memory/generation.hpp))
class OneContigSpaceCardGeneration: public CardGeneration {
...
WaterMark _last_gc; // watermark between objects allocated before
// and after last GC.
GC 終了時に, OneContigSpaceCardGeneration::gc_epilogue() 内でその時点での top 位置が記録される.
((cite: hotspot/src/share/vm/memory/generation.cpp))
void OneContigSpaceCardGeneration::gc_epilogue(bool full) {
_last_gc = WaterMark(the_space(), the_space()->top());
そして, この情報は AllocationProfiler::iterate_since_last_gc() 内で(のみ)使用されている (なお, この関数ではクラス毎のインスタンス生成量情報をカウントアップするために用いられている).
See: here for details
See: here for details
See: here for details
See: here for details
See: here for details
内部には以下のフィールド(のみ)を含む. (そして, メソッドはこれらのフィールドへのアクセサメソッドのみ)
((cite: hotspot/src/share/vm/memory/watermark.hpp))
HeapWord* _point;
Space* _space;
See: here for details
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.