別の質問に答える際に、誰かが次のチュートリアルを見せてくれました。著者は iterparse を使用して 3 秒以内に ~100 MB の XML ファイルを解析したと主張しています。
http://eli.thegreenplace.net/2012/03/15/processing-xml-in-python-with-elementtree/
~90 MB の XML ファイルを解析しようとしていますが、次のコードがあります。
from xml.etree.cElementTree import *
count = 0
for event, elem in iterparse('foo.xml'):
if elem.tag == 'identifier' and elem.text == 'bar':
count += 1
elem.clear() # discard the element
print count
約30秒かかります...同様のサイズのファイル、同様のアルゴリズム、および同じパッケージを使用して読んだチュートリアルで報告されたものと同じ大きさではありません.
誰かが私のコードの何が問題なのか、または私の状況とチュートリアルの違いに気付いていない可能性があることを教えてもらえますか?
Python 2.7.3 を使用しています。
補遺:
誰かがそうかもしれないと思った場合に備えて、私はかなり強力なマシンも使用しています。