タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

PythonとProgrammingとGCに関するsyanbiのブックマーク (3)

  • 【お詫びして訂正】Pythonの粗大ゴミ - atsuoishimoto's diary

    昨夜、Pythonの粗大ゴミというエントリを書いたが、このエントリを公開し、風呂に入ってさて寝ようとした時、ふと気になったことがあった。try-finally付きのジェネレータがgcで解放されないのなら、withブロックも一緒ではないだろうか? あの記事は昔ジェネレータでtry-finallyが使えるようになった時(そう、最初はジェネレータ内でtry-finallyを使うとコンパイルエラーだったのだ)、ふと気になって調べた記憶を元に書いた。あの頃はたぶんまだwith文が無かった頃なので、withブロック中での動きは把握していない。 で、調べてみると、やっぱりwithブロック中のジェネレータオブジェクトが循環参照に含まれていると、try-finallyの場合と同様に解放されない事がわかった。次のようなジェネレータ def uncollectable(arg): with context: y

    【お詫びして訂正】Pythonの粗大ゴミ - atsuoishimoto's diary
    syanbi
    syanbi 2011/02/28
    CPython GCについてのエントリ(他エントリの訂正にあたる)
  • Pythonのガベージコレクタは「マーク&スイープ」? - atsuoishimoto's diary

    昨日公開した Pythonのガベージコレクション にこんな突っ込みをいただいた。 マークアンドスイープGCじゃないそうです PythonのGarbageCollection http://www.narihiro.info/translate/garbage_collection_for_python_jp.html 確かに、Pythonで使用しているのは教科書で言うマーク&スイープとは異なるアルゴリズムである。上記のページにあるように、いわゆるマーク&スイープは、ルートオブジェクトと呼ばれる生きていることが確実なオブジェクトを見つけ出し、そこから参照されているオブジェクトをどんどん探り出して、最終的に誰からも参照されていないオブジェクトをあぶり出すというものだ。Pythonではルートからオブジェクトを探すというアプローチを取っておらず、私も会場の説明では「マークアンドスイープの一種」のよ

    Pythonのガベージコレクタは「マーク&スイープ」? - atsuoishimoto's diary
  • PythonのGCについて

    PythonのGarbageCollection 原文 Neil Schemenauer (翻訳:中村 成洋) ポータブルなGarbageCollection 概要 循環参照はリスト,タプル,インスタンス,クラス,辞書,関数に伴って見つかります. インスタンスの __del__ メソッドは正常に取り扱われます. 新しいタイプをGCの対象に追加するのは簡単です. このGCが有効なPythonは,通常のPythonとバイナリ互換です. 世代別GCが動いています(今は三世代).このオーバヘッドをpybenchで測ったら,大体4%くらい占めていました. 実質的に,すべての拡張モジュールは,不変に(私は,標準的な配布において 新しいものとcPickleを修正しなければなりませんでした)ならなければなりま せん.gcと呼ばれている新しいモジュールは,コレクターを調整して,デバッ ギングオプションをセッ

  • 1