[pyar] Memory Profiling

Javier Marcon javiermarcon en gmail.com
Jue Jun 12 16:40:18 ART 2014


El 12/06/14 12:12, claudio canepa escribió:
>
>
>
> 2014-06-12 10:53 GMT-03:00 Nicolas Rebagliati
> <nicolas.rebagliati en aenima-x.com.ar
> <mailto:nicolas.rebagliati en aenima-x.com.ar>>:
>
>     Hola, estoy teniendo problemas de consumo de memoria con algo.
>     Pero cuando quiere hacer un profiling veo que todos los ejemplos
>     son muy atómicos, o de funciones muy simples.
>     Esto es algo que va consumiendo memoria a los largo del tiempo y
>     no lo puedo probar atomicamente.
>     Basicamente lo que hace es leer trafico de red analizarlo y
>     guardarlo en un base de datos, pero evidentemente tengo algún leak
>     en algún lado porque al pasar unas horas se come tooda la ram del
>     servidor.
>
>     Se les ocurre como puedo encararlo para encontrar el leak?
>     Gracias
>
>
> En un caso simple [0] me sirvió objgraph [1].
>
> En ésta ultima página mencionan otras dos libs para lidiar con memory
> leaks:  heapy, Dozer, ambas en pypi. No las use asi que no puedo
> comentar sobre ellas.
>
>
>  
> [0]
> http://progcc.blogspot.com.ar/2011/10/investigando-un-memory-leak-en-cocos.html
>
> [1] http://mg.pov.lt/objgraph/
>
>
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de Argentina - http://www.usla.org.ar
Gracias por la info, yo estoy tratando de encontrar por que se cuelga
una apliciación hecha en python (2.7) que corre un loop infinito que
trae datos de internet, y a la funcion que genera el loop (que esta en
la clase clase_bajar y hay otra clase que la llama cada cierto tiempo)
le puse:

import objgraph
import inspect, random

class clase_bajar:

    def download(self):
        # aca hago toda la bajada
        print self._debugcount
            if self._debugcount == 0 or self._debugcount == 20:
                objgraph.show_growth(limit=20)
                if self._debugcount == 20:
                    objgraph.show_chain(
                                objgraph.find_backref_chain(
                               
random.choice(objgraph.by_type('clase_bajar')),
                                inspect.ismodule),
                                filename='chain.png')
        self._debugcount += 1

El tema es que al correrlo cuando tendría que grabar chain.png, me tira
este error:

Traceback (most recent call last):
  File "C:\Users\Administrador\Desktop\clase_bajar.py", line 116, in
download
    random.choice(objgraph.by_type('clase_bajar')),
  File "C:\Python27\lib\random.py", line 274, in choice
    return seq[int(self.random() * len(seq))]  # raises IndexError if
seq is empty
IndexError: list index out of range

A alguien le paso esto?

Gracias,

Javier.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20140612/65a14804/attachment.html>


More information about the pyar mailing list