したがって、cElementTree.iterparseを使用して反復解析する大きなxmlドキュメント(ファイルサイズ> 100 mb)を想像してみましょう。
しかし、インテルが私たちに約束したすべてのコアは価値があると思います。どのようにそれらを使用するのでしょうか。これが私が欲しいものです:
from itertools import islice
from xml.etree import ElementTree as etree
tree_iter = etree.iterparse(open("large_file.xml", encoding="utf-8"))
first = islice(tree_iter, 0, 10000)
second = islice(tree_iter, 10000)
parse_first()
parse_second()
これにはいくつかの問題があるようです。特に、iterparse()によって返されるイテレータがスライスに抵抗するように見えることです。
大きなxmlドキュメントの解析ワークロードを2つまたは4つの別々のタスクに分割する方法はありますか(ドキュメント全体をメモリにロードせずに?目的は別々のプロセッサでタスクを実行することです)。