これらは, Java ヒープ領域を管理するためのクラス (See: here for details).
Java ヒープ領域を管理するクラスは使用する GC アルゴリズムによって異なるが, これらはそういったクラス群の基底クラス. (See: SharedHeap, GenCollectedHeap, G1CollectedHeap, ParallelScavengeHeap)
Java ヒープ領域を管理するクラスの基底クラス.
Java ヒープ領域は, CollectedHeap クラスのサブクラスによって管理される.
((cite: hotspot/src/share/vm/gc_interface/collectedHeap.hpp))
// A "CollectedHeap" is an implementation of a java heap for HotSpot. This
// is an abstract class: there may be many different kinds of heaps. This
// class defines the functions that a heap must implement, and contains
// infrastructure common to all heaps.
((cite: hotspot/src/share/vm/gc_interface/collectedHeap.hpp))
class CollectedHeap : public CHeapObj {
なお, このクラス自体は abstract class であり, 実際に使われるのはサブクラス.
現状では以下のようなサブクラスが存在する.
((cite: hotspot/src/share/vm/gc_interface/collectedHeap.hpp))
//
// CollectedHeap
// SharedHeap
// GenCollectedHeap
// G1CollectedHeap
// ParallelScavengeHeap
//
See: here for details
CollectedHeap クラス用のユーティリティ・クラス.
ソースコード中のあるスコープの間だけ, GCCause を変更する (= CollectedHeap に GCCause を設定する) ための一時オブジェクト(StackObjクラス).
((cite: hotspot/src/share/vm/gc_interface/collectedHeap.hpp))
// Class to set and reset the GC cause for a CollectedHeap.
class GCCauseSetter : StackObj {
使う際には, コンストラクタに CollectedHeap と GCCause::Cause を渡す (コンストラクタ内で現在の GCCause::Cause を待避してから新しい GCCause::Cause を設定し, デストラクタ内で以前の GCCause::Cause に戻している).
See: here for details
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.