タグ

GCに関するagxのブックマーク (6)

  • 視覚化による5つのガベージコレクションアルゴリズム入門 | POSTD

    ほとんどの開発者は、自動のガベージコレクション(GC)を当たり前のように使っています。これは、私たちの仕事を容易にするために言語ランタイムが提供する素晴らしい機能の1つです。 しかし、最新のガベージコレクタの中をのぞいてみれば、実際の仕組みは非常に理解しづらいことが分かります。実装の詳細が無数にあるため、それが何をしようとしているのか、また、それがとんでもなく間違った事態を引き起こしかねないことについて十分理解していない限り、すっかり混乱してしまうでしょう。 そこで、5種類のガベージコレクションアルゴリズムを持つおもちゃを作ってみました。小さいアニメーションはランタイムの動作から作成しました。もっと大きいアニメーションとそれを作成するコードは github.com/kenfox/gc-viz で見ることができます。単純なアニメーションによってこうした重要なアルゴリズムを明らかにできることは

    視覚化による5つのガベージコレクションアルゴリズム入門 | POSTD
  • GCの最近のトレンドっぽいもの - I am Cruby!

    GC英語論文Bacon01Concurrent.pdf今読んでいる最中。trasingGCと欠け合わさっていてとても興味深い一品。面白いので読んでおく価値あり 04-g1-paper-ismm.pdfJavaGCの一つの機能の新しいアルゴリズムだとか。Garbage First Garbage Collection(G1GC)だそうな。詳しく読んでないのでまだわかんない。trainGCに類似してるそうな。ということはremenbersetがうんぬんかんぬん。 HnxGCHnxGC-Accurate (Precise), Pauseless & Deterministic Garbage Collection C++たぶん上のを実際に実装してるんだと思う。OpenSourceじゃないのでわかんないけど、そんな雰囲気だった。C++のGCライブラリだそうだ。 常識だけどトレンドを知りたい人はRe

    agx
    agx 2008/04/06
  • [実装編]メモリー管理を処理系任せにしてはいけない

    Javaや.NETを使うと,メモリー管理を意識しなくてもプログラミングできる。例えばJavaの場合は,Java VM(Virtual Machine)が備える「ガベージ・コレクタ」と呼ぶメモリー管理機能が,未使用のオブジェクトを破棄してメモリーを解放するといった処理を自動的に実行する(図1)。 図1●JavaVMによるメモリー管理の仕組み ヒープ領域は,生存期間の短いオブジェクトを格納する「New領域」と生存期間の長いオブジェクトを格納する「Old領域」で構成される。New領域はさらに,最初にオブジェクトを格納する領域「Eden」と,しばらく生存しているオブジェクトを格納する「世代0」「世代1」から成る。Edenに存在するオブジェクトは,生存期間が延びるにつれて,世代0または世代1に移動。世代0と世代1を何度か移動した後,最終的にOld領域に移される [画像のクリックで拡大表示] だが,処

    [実装編]メモリー管理を処理系任せにしてはいけない
    agx
    agx 2008/04/05
    世代別GCの説明
  • Some more advanced GC techniques

    After my last two posts about garbage collection, some people people suggested some more advanced techniques be used to solve the pausing problem. Here's a quick* overview of some more advanced techniques, some of which can eliminate noticeable pauses and some of which can solve other problems in GC. The train algorithm The idea of the train algorithm is to break the heap (or, really, just the old

    agx
    agx 2008/04/04
    GC のアルゴリズムいろいろ
  • Garbage Collection - Seminars - Langphilia!

    {Richard Jones, Rafael Lins}, GARBAGE COLLECTION Algorithms for Automatic Dynamic Memory Management. John Wiley & Sons Ltd, 1996. (訳注) このページは、上記のの第1章までをてきとーに訳したものです。 原文の著作権は、原著者にあります。このページの著作権は私にあります。 翻訳許可はもらっていません。 前書き (Preface) このはGCのです。 GCとは、プログラムが利用し終わったヒープ領域を自動的に回収するものです。 昔も今も、メモリは限られた貴重な資源です。 コンピュータの初期、VLSIが現れるまでメモリは高価で、 Unixのような時分割OSでもたった64KBのセグメント1つで動くことが望まれました。 今日、SIMMは比較的安価でインストールも簡単で

    agx
    agx 2007/11/02
    GARBAGE COLLECTION Algorithms for Automatic Dynamic Memory Management の第1章までをてきとーに訳したものです。
  • Mostly-Concurrent Mark & Sweep GC のアルゴリズム

    目次 1. 前置き 2. HotSpot VM 1.4.x の GC の種類 3. Mostly-concurrent Mark & Sweep 4. 応用 4.1 世代別 GC との組み合わせ 4.2 カードマーキング (Card Marking) 4.3 並列化 (Parallel GC) 4.4 ビットワイズ・スイープ (Bitwise Sweep) 4.5 インクリメンタル・コンパクション (Incremental Compaction) 5. 参考文献 脚注 コメント 1. 背景 ガーベージコレクション(GC) には色々なアルゴリズムが存在するが、大雑把に言って Stop-the-World (STW) 型 GC と On-the-fly 型 GC に大別される。 STW 型の GC はプログラムの実行中にはガーベージの回収を行わず、メモリが枯渇した時になって始めてガーベージの回

    agx
    agx 2007/11/01
    Java のGCアルゴリズム
  • 1