Я рекомендую Лозоискатель . Очень легко установить, и Вы должны обнулить изменения в своем коде. Можно просмотреть количества объектов каждого типа в течение времени, списка представления живых объектов, ссылки представления для проживания объектов, всех от простого веб-интерфейса.
# 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 или Бесформенный. Я ценил бы обзоры других.
ОБНОВЛЕНИЕ
вышеупомянутый код для 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()
Совершенствование превосходной информации/ответа от Jamie Garroch (который объясняет, как постоянный компилятор VBA7 не говорит Вам наверняка, если Ваш код работает в 64-разрядном Офисном приложении), компилятор VBA #if
директива может обработать And
операторы.
, Который означает, Вы не должны повторять свои 32-разрядные объявления функции. Можно просто сделать это:
#If VBA7 And Win64 Then ... '64 Bit Declarations: for example ... Private Declare PtrSafe Sub API_CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (dest As Any, source As Any, ByVal bytes As Long) #Else '32 Bit Declarations: for example ... Public Declare Sub API_CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (dest As Any, source As Any, ByVal bytes As Long) #End If