Итак, давайте представим большой XML-документ (размер файла> 100 МБ), который мы хотим разбить с помощью cElementTree.iterparse.
но все те ядра, которые Intel обещал нам, будут полезны, как мы их используем? вот что я хочу:
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-документа на две или четыре отдельные задачи (без загрузки всего документа в память?) С целью выполнения задач на отдельных процессорах.