hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp
void PSParallelCompact::compact_perm(ParCompactionManager* cm) {
  {- -------------------------------------------
  (1) (トレース出力)
      ---------------------------------------- -}
      EventMark m("4 compact perm");
      TraceTime tm("compact perm gen", print_phases(), true, gclog_or_tty);
      // trace("4");
  {- -------------------------------------------
  (1) これからオブジェクトを移動させるので, offset array (start array) の中身をクリアしておく.
      (start array は, この後の PSParallelCompact::move_and_update() の中で
       コンパクション後の内容に合った値へと変更される)
      ---------------------------------------- -}
      gc_heap()->perm_gen()->start_array()->reset();
  {- -------------------------------------------
  (1) PSParallelCompact::move_and_update() を呼んで, 実際のオブジェクトの移動処理を行う.
      ---------------------------------------- -}
      move_and_update(cm, perm_space_id);
    }
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.