Я рекомендую Доусер . Это очень легко установить, и вам нужно ноль изменений в вашем коде. Вы можете просматривать количество объектов каждого типа во времени, просматривать список живых объектов, просматривать ссылки на живые объекты, все из простого веб-интерфейса.
# 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)
Вы импортируете memdebug и вызываете memdebug.start. Это все.
Я не пробовал PySizer или Heapy. Буду признателен за отзывы других.
ОБНОВИТЬ
Выше код для CherryPy 2.X
, метод был удален и не принимает флаг. Так что если вы используетеCherryPy 3.X
server.quickstart
engine.start
blocking
CherryPy 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()