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

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

このブログに乗せているコードは引用を除き CC0 1.0 で提供します。