私は自分の 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 に読み込むために使用しようとしましたが、解析エラーが発生します。私がやっていることは正しいように見えますか? もしそうなら、出力ファイルをどのように解釈すればよいですか?