タグ

2013年6月6日のブックマーク (2件)

  • Pythonのurllib2がメモリリークする件 - YA55AI

    間違ってたら指摘お願いします。 環境: windows XP Python 2.5.2 http://mail.python.org/pipermail/python-bugs-list/2005-October/030763.html 三年前に話してることみたいなんですがここではurlopen()したときの話をしてて(英語は細かいことわからないです) urllib2.py:1095 r.recv = r.read ここで拡張してるのが原因でaddinfourlの親クラスaddbaseのclose()を呼んでもrecvを解放する処理がないので循環参照したままになっています。 その解決策に import urllib2 f = urllib2.urlopen('http://www.google.com') text=f.read() f.fp._sock.recv=None # hacky

    Pythonのurllib2がメモリリークする件 - YA55AI
  • __del__, gc, 循環参照, weakref

    2010年11月22日公開 Python の __del__ メソッド、ガベージコレクタ、循環参照、そして弱参照についての解説と考察。 参照カウンタ __del__ __del__ の落とし穴 循環参照 __del__ の落とし穴 考察 __del__ を使わない 循環参照を確実に避けることはできる? 弱参照 weakref モジュールを利用したハック いったいいつ __del__ を使うのか 参考文献 事項 参照カウンタ C/C++ では、malloc を使って確保したメモリや new で作成したオブジェクトについては、必ず対応する free / delete を呼ばなければならない。これを忘れるといつまでも解放されないメモリがプログラムの生存期間中居残ることになる。これをメモリリークと呼ぶ。メモリリークがあると、確保されたままになったメモリが OS や他のプロセスを圧迫して、システム全