Python プロファイリング データをキャプチャして、レポートを生成する必要があります。
このコンポーネントのほとんどは Python 3.5 を実行しますが、いくつかのレガシー モジュールをサポートするために、2.7 を実行するシステムの一部がまだ残っています。
この例では、3.5 が 2.7 を介して呼び出し、と の両方をsubprocess.Popen()
キャプチャします (それぞれデータとログとして機能します)。stdout
stderr
2.7 プロセス内で cProfile を実行し、結果のデータをディスクに書き込み、pStats にロードすることができました。
この時点で、ソート/フィルタリングしてコンソールに出力できます。残念ながら、stdout
/stderr
はすでに使用されているため、これはあまり役に立ちません。
また、ソースコードのスニペットをフォーマットしたり、挿入したりする機会があればいいのにと思います。
そのため、プログラムで pStats クラスに問い合わせ、適切なレポートを作成し、それをメッセージング システムに保存する必要があります。
ドキュメントは、コンソールへの書き込み以外のデータを抽出する方法を示していないようです。
プロパティは有望に.stats
見えますが、多くの情報を省略した 3 タプルの配列しか含まれていません。
プログラムで pStats のデータを参照するにはどうすればよいですか?
具体的には、最低限抽出したい:
- ソースファイル/行番号
- 累積時間
- 独占時間