hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp
bool PSParallelCompact::initialize() {
{- -------------------------------------------
(1) (変数宣言など)
---------------------------------------- -}
ParallelScavengeHeap* heap = gc_heap();
assert(heap->kind() == CollectedHeap::ParallelScavengeHeap, "Sanity");
MemRegion mr = heap->reserved_region();
{- -------------------------------------------
(1)
---------------------------------------- -}
// Was the old gen get allocated successfully?
if (!heap->old_gen()->is_allocated()) {
return false;
}
{- -------------------------------------------
(1) PSParallelCompact::initialize_space_info() を呼んで _space_info を初期化する.
---------------------------------------- -}
initialize_space_info();
{- -------------------------------------------
(1)
---------------------------------------- -}
initialize_dead_wood_limiter();
{- -------------------------------------------
(1) ParMarkBitMap::initialize() を呼んで _mark_bitmap を初期化する.
失敗したら vm_shutdown_during_initialization()
---------------------------------------- -}
if (!_mark_bitmap.initialize(mr)) {
vm_shutdown_during_initialization("Unable to allocate bit map for "
"parallel garbage collection for the requested heap size.");
return false;
}
{- -------------------------------------------
(1) ParallelCompactData::initialize() を呼んで _summary_data を初期化する.
失敗したら vm_shutdown_during_initialization()
---------------------------------------- -}
if (!_summary_data.initialize(mr)) {
vm_shutdown_during_initialization("Unable to allocate tables for "
"parallel garbage collection for the requested heap size.");
return false;
}
{- -------------------------------------------
(1) リターン
---------------------------------------- -}
return true;
}
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.