1

Python の C-API を使用して、C コードで Python コードを呼び出しましたが、Python コードのボトルネックをプロファイリングしたいと考えています。PyEval_SetProfile API に出会いましたが、その使用方法がわかりません。独自のプロファイリング関数を作成する必要がありますか?

例を挙げたり、例を挙げていただければ幸いです。

4

1 に答える 1

2

Python コードで費やされた時間だけを知る必要があり、(たとえば) Python コードで最も多くの時間が費やされている場所を知る必要がない場合は、Python プロファイリング ツールは必要ありません。Python インタープリター呼び出しの前後の時間をサンプリングする簡単な C コードをいくつか書き、それを使用します。または、Python インタープリターを C 関数呼び出しとして測定するための C レベルのプロファイリング ツール。

Python コード内でプロファイリングする必要がある場合、独自のプロファイル関数を作成することはお勧めしません。生データを提供するだけで、それを集計して分析する必要があります。代わりに、cProfile モジュールを呼び出す Python コードの周りに Python ラッパーを記述して、後で調査できるデータをキャプチャします。

于 2012-07-06T23:58:34.097 に答える