Dlaczego lxml.etree.iterparse () zjada całą moją pamięć?

To ostatecznie pochłania całą dostępną pamięć, a następnie proces zostaje zabity. Próbowałem zmienić tag zschedule do „mniejszych” tagów, ale to nie miało znaczenia.

Co robię źle / jak mogę przetworzyć ten duży plik za pomocąiterparse()?

import lxml.etree

for schedule in lxml.etree.iterparse('really-big-file.xml', tag='schedule'):
    print "why does this consume all my memory?"

Mogę to łatwo wyciąć i przetworzyć w mniejsze kawałki, ale to brzydsze niż bym chciał.

questionAnswers(3)

yourAnswerToTheQuestion