1 / 15

高速で実時間性を持つ GC の設計と実装

高速で実時間性を持つ GC の設計と実装. 2004.10.5 電子情報工学科 4 年 近山・田浦研究室 30384 白井達也. 発表の流れ. 背景 本研究の目的 基本的な GC アルゴリズム 関連研究 本研究の GC モデルによる性能予測 現状と今後の予定. メモリの自動管理の必要性. 背景. メモリ管理の明示は煩雑 Garbage Collection ( GC) メモリの解放を自動的に行う プログラマは解放のタイミングを明示する必要が無くなり、負担が軽減する GC のコスト 効率 ⇒総実行時間 停止時間 ⇒対話プログラムの反応時間.

senta
Download Presentation

高速で実時間性を持つ GC の設計と実装

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 高速で実時間性を持つGCの設計と実装 2004.10.5 電子情報工学科4年 近山・田浦研究室 30384 白井達也

  2. 発表の流れ • 背景 • 本研究の目的 • 基本的なGCアルゴリズム • 関連研究 • 本研究のGC • モデルによる性能予測 • 現状と今後の予定

  3. メモリの自動管理の必要性 背景 • メモリ管理の明示は煩雑 • Garbage Collection(GC) • メモリの解放を自動的に行う • プログラマは解放のタイミングを明示する必要が無くなり、負担が軽減する • GCのコスト • 効率 ⇒総実行時間 • 停止時間 ⇒対話プログラムの反応時間

  4. 本研究の目的 • 効率と停止時間 • まとめて処理すると、効率はよいが、停止時間が長い • 処理を分けると、停止時間は短いが、効率は悪い 効率と停止時間はトレードオフの関係 • 本研究の目的 一度に停止する最大時間を抑えた上で効率の高いGCを設計、実装する

  5. Reference Count GC(RC) • 手法 • オブジェクトから参照されている数(参照数)を数える • ポインタが更新されたら参照数も更新し、0になったら解放する • 長所 • 停止時間が短い • 効率が オブジェクトの 生存率によらない • 短所 • ポインタ更新ごとの 処理が大きい • 循環参照を解放できない local or global variables root root 1 A 2 D 1 B 2 0 1 E F C

  6. Mark-Sweep GC(MS) • 手法 • rootからたどれたオブジェクトをmarkする • ヒープをsweepしてmarkされていないオブジェクトを解放 • 長所 • 循環参照のごみを 解放できる • 短所 • 停止時間が長い • オブジェクト生存率が 高いと効率が悪くなる local or global variables root root T A T D F B F T F C E F

  7. Incremental Mark-Sweep GC(IMS) • 手法 • ヒープ使用率が(k-1)/kを超えたらmarkフェーズに入る • ユーザプログラムがメモリをallocateするたびに、k個のオブジェクトだけmarkを行う • 長所 • 停止時間が短い • 短所 • 生存率が高いと 効率が悪くなる • ポインタ更新ごとの処理 など、MSより効率が悪い Heap 使用量 (k-1)/k markした量 allocate clock IMS開始 IMS終了 1サイクル

  8. 関連研究 • RCとIMSのハイブリッドGC [J. DeTreville 1990] • 循環参照のごみを解放することを目的としたGC • 効率は考慮されていない • Ulterior Reference Counting [S. M. Blackburn et al. 2003] • 停止時間を抑え、効率の向上を目指したGC • Generational GCで、若い世代はCopying GCを、古い世代はRCを用いている。循環参照のごみの解放にはBaconらによるCycle detectionを用いる • プログラムによっては停止時間が長くなる

  9. 本研究の貢献 • 以下の要件を満たすGCを提案する 1.循環参照のごみも解放する 2.停止時間が短い 3.生存率の上昇による、効率の低下を抑 える • その上で、できるだけ効率を向上させることを考える

  10. 基本方針 • RCとIMSを用いる • 停止時間が短い • 生存率が高くても、効率の低下が少ない • 循環参照構造を解放する • IMSの調整 • 1 allocateごとのIMSの mark量を調整し、サイクル数を減らすことで、効率を向上させる

  11. RCによる解放中 IMS終了 IMS開始 RCとIMSの調整(1) ヒープが足りなくなる前に、しかし、できるだけ遅くにIMSのmarkが終わるように設定する 1.RCによる解放は 1 allocateにつき 1 objectまで 2.IMSのmark は 1 allocateにつき k objectずつ(kは停止時間の設定による) 3.IMSはヒープ使用率が(k-1)/kになったらmark を開始する 4.RCの解放中はIMSのmarkを行わない heap size 使用量 heap×(k-1)/k IMS終了時の使用量 mark後にごみなったオブジェクト 生存量 markした量 allocate clock 1サイクル

  12. RCとIMSの調整(2) R markフェーズ中の 「ヒープの空き領域 R」 と 「未markオブジェクトの最大量T」 の関係は常に ヒープが足りなくなる前に IMSのmarkが終わる T

  13. モデルを用いた性能予測 • 仮定 • 生存率とサイクル終了時の 使用率が一定 • 本研究のGCがIMSよりも効率がよくなる条件 ra :サイクル終了時のヒープ使用率 r :RCによる1オブジェクトの解放コスト m :1オブジェクトのmarkコスト s :1オブジェクトのsweepコスト k :1allocateあたりのmark量 (r,m,sは実装によって決まる) • 使用率が高いときは • 本研究のGCのほうが有利 !!

  14. 実装 • Jikes RVMを用いる • オープンソースのJava VM • メモリ管理はモジュール(JMTk [S. M. Blackburn et al. 2003])に 分かれている • すでに実装されているGC • Mark-Sweep GC • Copying GC • Reference Count GC • Generational GC (hybrid) • 本研究ではRCを元に実装する

  15. 現状と今後の予定 • 現状 • GCの設計が決まった • 今後の予定 • GCモデルの改良 IMSを調整しないGCモデルを作り、IMSを調整することによる性能向上の予測を立てる • 実装 Jikes RVMに本研究のGCを実装する • 評価 生存率の異なるプログラムを用いて、停止時間を確認し、総実行時間を測定する • ヒープ使用率の低い時の対応 ヒープ使用率が低い時はRCの処理を止めることで、IMSと同じ性能にできる

More Related