import xml.sax from StringIO import StringIO import gc class TestParser(xml.sax.ContentHandler): ## def __del__(self): ## print "TestParser destructed." def startElement(self, name, attrs): self.waste_memory = "x" * (2**19) def endElement(self, name): pass def characters(name, chars): pass def test1(): i = 1 while 1: print "Iteration %s" % i xml.sax.parseString("", TestParser()) ## Does gc.collect() eat anything that has a __del__? ## del gc.garbage[:] ## gc.collect() i = i + 1 if __name__ == '__main__': print "This is a test of an apparent XML memory leak." test1()