読者です 読者をやめる 読者になる 読者になる

methaneのブログ

このブログに乗せているサンプルコードはすべてNYSLです。

lxml ではなるべく attrib を使わない方が良い

Python

lxml の Element.attrib は、 _Attrib という libxml への Proxy オブジェクトを生成する。この Proxy オブジェクトは、 _Element という Proxy オブジェクトと循環参照になっている。
大規模なxml処理においては、この循環参照によって gc の間にメモリを食いつぶしたり gc に長時間かかったりするので、なるべく get()/set()/items() というメソッドを使うべき。