Como detectar memory leaks

Hern=?ISO-8859-1?Q?=E1n_Mart=ED?=nez Foffani hernan en orgmf.com.ar
Jue Jun 12 13:28:52 CEST 2003


> Tengo una aplicacion que corre en modo demonio, y que eventualmente
> pierde memoria, al principio no es un problema, pero al llevar un
> mes funcionando ya tiene el 80% de toda la memoria RAM.
> Alguien tiene experiencia en como depurar este tipo de
> aplicaciones, ya que he revisado el código pero no veo nada raro...
> existe algo como el memproof de C para python? (Creo que debe ser
> alguna libreria asociada pero no se como depurarlo)

harian falta mas datos de los que has mencionado: version de python,
si usas bibliotecas de terceras partes, si has incluido extensiones
en C, sistema operativo, y el tipo de aplicacion (mencionaste que era
un deamon pero no diste mas detalles)

sin embargo puedo sugerirte que intentes correr tu aplicacion con
python en modo debug (recompilando el python) donde tienes
disponible sys.gettotalrefcount(). ejemplo:

    while True:
        miAplicacionDudosa()
        gc.collect()
        print gc.garbage  # lista vacia
        print '** refs:', sys.gettotalrefcount()

si hubiera programado una miAplicacionDudosa() con perdida de
memoria, en cada vuelta del ciclo la cantidad de referencias que se 
muestra seria mayor.


espero que sirva,
-H.




Más información sobre la lista de distribución Python-es