Gijs Molenaar wrote: > Wie o wie, heeft er een idee? Zonder naar je code te kijken, kan ik wel wat pointers geven:
- Globale mutable variabelen zijn vaak een bron van leaks; als je elke loop een item in een globale list stopt dan ruimt Python dat nooit op want er bestaat nog een referentie. - Probeer het probleem in een testopstelling te recreƫren; daarna kun je door een binary search (helft van de code uitzetten) de leak te isoleren. - Probeer circular references te vermijden; zelfs met GC support voor circular references kunnen objecten in het geheugen blijven. Als je toch circulaire referenties moet gebruiken, probeer dan weakrefs toe te passen (standaard library module 'weakref'). - Print reference counts en referents als je de problemen niet precies kan isoleren; sys.getrefcount laat je reference counts zien voor een gegeven object, en gc.get_referrers geeft je de objecten die refereren naar een gegeven object. - Desnoods zet je de garbage collection debug traces aan met gc.set_debug. Het is waar dat het Python memorymodel moeilijk gehuegen weer vrijgeeft aan het OS door fragmentatie, maar dat betekend nog niet dat je geheugen gebruik alleen maar groeit. Martijn Pieters _______________________________________________ Python-nl mailing list Python-nl@python.org http://mail.python.org/mailman/listinfo/python-nl