我一直在尝试开始分析我的 CherryPy Web 服务器,但文档缺乏如何设置的详细信息。我明白我应该能够使用cherrypy.lib.profiler
作为安装我的初始服务器的中间件。现在,我有如下代码:
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,但出现解析错误。我正在做的事情看起来正确吗?如果是,我该如何解释输出文件?
事实证明,CherryPy 生成的配置文件可以使用以下命令进行解释profiler.py
脚本作为 CherryPy 的一部分提供。只需运行profiler.py
in the <site-packages>/cherrypy/lib
目录如下:
python profiler.py /directory/containing/prof/files 8080
然后导航至localhost:8080
在您的浏览器中以及所有的分析结果.prof
目标目录中的文件将显示在简单的文本界面中。
我仍然希望能够将结果导出到调用树中以使用 KCacheGrind 进行分析,但这似乎适用于基本分析。
这记录在CherryPy v2.1 的更改日志 https://bitbucket.org/cherrypy/cherrypy/wiki/WhatsNewIn21当引入探查器时(尽管该页面上描述如何设置探查器的其他详细信息已被弃用)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)