Упрощенная версия моей функции синтаксического анализа 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. Но почему он падает?