0

この記述は正しいですか? 「したがって、Android 2.3では、同時マークとスイープがスタック関連のオブジェクトに使用され、すべてをポインターとして扱い、ガベージコレクションのコピーがヒープ内のオブジェクトに使用されます」誰でも説明できますか? Android 2.3 のガベージ コレクター

どうもありがとう。

4

1 に答える 1

1

私が知っているように、dalvikvm には 2 つの GC モードがあります。1 つは ConcurrentMarkSweep で、もう 1 つは Copying です。

実行時にコンパイルされるモードは 1 つだけです。

また、デフォルト モードはコンカレント マーク スイープ GC です。コンカレントは、GC マーク スイープ ステップでのみ使用されます。GC プロセスでは、完全な手順は次のとおりです。

  1. 他のすべてのスレッドを中断する
  2. ルート マーク (スレッド スタック、jni 参照、クラスの静的フィールドとクラス オブジェクト)
  3. 自分自身を期待するすべてのスレッドを再開する
  4. GC マーク ビットマップに依存する同時マーク スイープ。ここでは、他のスレッドは実行中の状態です
  5. 他のすべてのスレッドを中断する
  6. 再びルートマーク
  7. カードテーブルで汚れたオブジェクトをマークする
  8. スレッドを中断する
  9. 同時掃引
于 2014-04-06T03:13:12.927 に答える