タグ

ブックマーク / nari.hatenablog.com (4)

  • Re: Pythonのガベージコレクタは「マーク&スイープ」? - I am Cruby!

    GCPythonのガベージコレクタは「マーク&スイープ」? - atsuoishimotoの日記の話に私の翻訳した記事がのってたので、ブログでも補足させてください。ここで話すPythonというのは「CPython」のことです。 PythonのGCはマーク・スイープか?これは「参照カウント」だと思います。参照カウンタには「循環参照しているオブジェクト群が死んでも死にきれない」という罠があって、それを解消するために部分的にマーク・スイープのようなものが組み込まれた、というのが私の理解です。これは我々のでは「部分的マーク・スイープ法」と書いてますね。CPythonはこのアルゴリズムを少しいじって実装されているようです。世代別になってますね。 これは詳細が知りたいですよね。なんと実装については我々のに載っています(キリッ  なんで「マーク・スイープ」じゃないの?なぜなら,拡張モジュールが動作し

  • 「ガベージコレクションのアルゴリズムと実装」という本を書きました。

    gcbook, gcai, GCGCLoverのみなさん、お待たせしました。「ガベージコレクションのアルゴリズムと実装」の情報公開です。 書名:ガベージコレクションのアルゴリズムと実装 著者:中村 成洋/相川 光 監修:竹内 郁雄 ページ数:472ページ 体価格:3,200円 発売開始日:2010年3月17日(水) ※地域・書店によって遅れることがあります ISBN:978-4-7980-2562-9 C3055 読み所 書は次の2つのテーマを扱います。 1.GCのアルゴリズム(アルゴリズム編) 2.GCの実装(実装編) アルゴリズム編では、これまでに考案されてきた数多くのGCアルゴリズムの中 から、重要なものを厳選して紹介します。伝統的かつ基的なものから、やや 高度なアルゴリズムを選定しています。GC独特の考え方や各アルゴリズムの特 性などを理解していただくのがアルゴリズム編の最大

    kiszk
    kiszk 2010/03/04
  • メモリ破壊の現場を見つけるTips - I am Cruby!

    RubyAdventJP, GC, Ruby(この記事はRuby Advent Calendar jp: 2009 : ATNDの4日目です。前日はmrknさんでした) 健全なるRubyistであれば、RubyのGCをいじることが週に一度はあるでしょう。そのときに困るのが、GCをいじってしまったことによるバグの修正です。GCをいじるというのは想像以上に難しく、少しでも書き間違えるとメモリ破壊が発生します。そのときに使えるTipsをこの記事で書くことにします。 みなさんご存じの通り、メモリ破壊というのは原因を特定するのが困難です。これは問題が発覚する場所とメモリ破壊が起こった現場が位置的に遠いことに起因しています。偉大なるハッカーのまつもとさんですら、その発見は困難です。 [ruby-dev:38628] Re: [BUG: trunk] called on terminated objec

  • I am Cruby!

    この記事はパーフェクトRuby Advent Calendar 2013 - Adventar の9日目です。 前の日のエントリーはパーフェクトRuby Advent Calendar 2013(8日目) Let's Sinatra Life - たちブログです。 まだ参加できますので、みなさまもぜひ。 パーフェクトRuby Advent Calendar 2013 - Adventar パーフェクトRuby Rubyの仕様に大変詳しい同僚への献をインターセプトして読ませていただきました。 さまざまな機能をまとめたとてもよいだと思います。 著者のみなさまの苦労が偲ばれました。 1行の修正 Ruby1.9.3に対するこんな感じのパッチを送りました。 diff --git a/object.c b/object.c index 0a0b260..1ab28a3 100644 -

    I am Cruby!
    kiszk
    kiszk 2010/03/03
  • 1