hotspot/src/share/vm/memory/genCollectedHeap.cpp
void GenCollectedHeap::prepare_for_compaction() {
{- -------------------------------------------
(1) まず Old 世代の Generation について Generation::prepare_for_compaction() を呼び出し,
次に New 世代の Generation について Generation::prepare_for_compaction() を呼び出す.
(なお, コンパクト先の領域については CompactPoint クラスで管理しており,
まずは Old 領域をコンパクト先として設定している.)
---------------------------------------- -}
Generation* scanning_gen = _gens[_n_gens-1];
// Start by compacting into same gen.
CompactPoint cp(scanning_gen, NULL, NULL);
while (scanning_gen != NULL) {
scanning_gen->prepare_for_compaction(&cp);
scanning_gen = prev_gen(scanning_gen);
}
}
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.