Я пытался начать профилирование своего веб-сервера CherryPy, но в документации недостаточно подробно описано, как это должно быть настроено. Я понимаю, что я должен использовать cherrypy.lib.profiler
в качестве промежуточного программного обеспечения для монтирования моего начального сервера. Прямо сейчас, у меня есть код вроде следующего:Profiling CherryPy
server_app = ServerClass()
cherrypy.tree.mount(server_app, '/', '/path/to/config/file.cfg')
cherrypy.engine.start()
cherrypy.engine.block()
Я хочу установить профилирование промежуточное программное обеспечение, и, кажется, что-то вроде требуется следующее:
from cherrypy.lib import profiler
server_app = ServerClass()
server_cpapp = cherrypy.Application(server_app, '/', '/path/to/config/file.cfg')
server_profile_cpapp = profiler.make_app(server_cpapp, '/home/ken/tmp/cprofile', True)
#cherrypy.tree.mount(server_profile_cpapp)
cherrypy.tree.graft(server_profile_cpapp)
cherrypy.engine.start()
cherrypy.engine.block()
По какой-то причине не cherrypy.tree.mount
работа, но если я использую cherrypy.tree.graft
все, кажется, работает нормально (я могу делать запросы к серверу, как обычно)
Однако приведенный выше код генерирует cp_0001.prof
файл под /home/ken/tmp/cprofile
, и я не знаю, как я попробуйте. Я пробовал использовать pyprof2calltree
для чтения данных в KCacheGrind, но я получаю ошибку синтаксического анализа. Делает то, что я делаю, кажется правильным, и если да, то как интерпретировать выходной файл?
Получение этого также. –