Recomiendo Dowser . Es muy fácil de configurar y no necesita cambios en su código. Puede ver recuentos de objetos de cada tipo a través del tiempo, ver la lista de objetos vivos, ver referencias a objetos vivos, todo desde la interfaz web simple.
# memdebug.py
import cherrypy
import dowser
def start(port):
cherrypy.tree.mount(dowser.Root())
cherrypy.config.update({
'environment': 'embedded',
'server.socket_port': port
})
cherrypy.server.quickstart()
cherrypy.engine.start(blocking=False)
Importa memdebug y llama a memdebug.start. Eso es todo.
No he probado PySizer o Heapy. Agradecería las opiniones de los demás.
ACTUALIZAR
El código anterior es para CherryPy 2.X
, CherryPy 3.X
el server.quickstart
método se ha eliminado y engine.start
no toma la blocking
bandera. Entonces, si estás usandoCherryPy 3.X
# memdebug.py
import cherrypy
import dowser
def start(port):
cherrypy.tree.mount(dowser.Root())
cherrypy.config.update({
'environment': 'embedded',
'server.socket_port': port
})
cherrypy.engine.start()