Por que lxml.etree.iterparse () devora toda a minha memória?

Isso eventualmente consome toda a minha memória disponível e, em seguida, o processo é morto. Eu tentei mudar a tag deschedule para tags 'menores', mas isso não fez diferença.

O que estou fazendo errado / como posso processar esse arquivo grande comiterparse()?

import lxml.etree

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

Eu posso facilmente cortá-lo e processá-lo em pedaços menores, mas isso é mais feio do que eu gostaria.

questionAnswers(3)

yourAnswerToTheQuestion