Упрощенная версия моей функции разбора XML находится здесь:
import xml.etree.cElementTree as ET
def analyze(xml):
it = ET.iterparse(file(xml))
count = 0
for (ev, el) in it:
count += 1
print('count: {0}'.format(count))
Это приводит к тому, что Python исчерпывает память, что не имеет большого смысла. Единственное, что я на самом деле храню, это число, целое число. Почему он это делает:
Увидите это внезапное падение памяти и использование ЦП в конце? Этот Python грохот. По крайней мере, он дает мне MemoryError
(в зависимости от того, что еще я делаю в цикле, он дает мне более случайные ошибки, такие как IndexError
) и трассировку стека вместо segfault. Но почему это рушится?