ParallelScavengeHeap の Parallel Compaction 処理 (UseParallelOldGC オプションが指定されている場合の Major GC 処理)で使用される補助クラス(See: here and here for details).
Mark 処理や Compact 処理を並列化するための機能を提供している.
((cite: hotspot/src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.hpp))
class ParCompactionManager : public CHeapObj {
内部には OverflowTaskQueue
((cite: hotspot/src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.hpp))
OverflowTaskQueue<oop> _marking_stack;
また, 内部には ObjArrayTaskQueue 型のフィールド (_objarray_stack) も持っており, 長すぎるために一度に処理したくないポインタ配列については (いったん処理を pending した状態で) このスタックに積まれる.
((cite: hotspot/src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.hpp))
ObjArrayTaskQueue _objarray_stack;
See: here for details
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.