Python コミュニティは、Python コードのプロファイリング方法や、C またはCythonでの Python 拡張機能の技術的な詳細を示す参考資料を公開しています。私はまだチュートリアルを探していますが、自明ではないPythonプログラムについては、次のことを示しています。
- C 拡張への変換による最適化の恩恵を受けるホットスポットを特定する方法
- 同様に重要なこととして、C 拡張への変換の恩恵を受けないホットスポットを特定する方法
- 最後に、Python から C への適切な変換を行う方法について説明します。Python C-API を使用するか、(できれば) Cython を使用します。
優れたチュートリアルでは、完全な例を使用して最適化の問題を解決する方法について、読者に方法論を提供します。そのようなリソースを見つけることに成功しませんでした。
そのようなチュートリアルを知っていますか (または書いたことがありますか) ?
明確にするために、以下のみをカバーするチュートリアルには興味がありません。
- (c)Profile を使用して Python コードをプロファイリングし、実行時間を測定する
- ツールを使用してプロファイルを調べる ( RunSnakeRunをお勧めします)
- より適切なアルゴリズムまたは Python コンストラクトを選択することによる最適化 (たとえば、リストの代わりにメンバーシップ テストのセット)。チュートリアルでは、アルゴリズムと Python コードが既に最適化されていると想定する必要があり、C 拡張が次の論理的なステップになる時点に達しています。
- C 拡張機能の作成に関する Python ドキュメントの要約。これは、リファレンスとしては優れていますが、Python から C にいつ、どのように移行するかを示すリソースとしては役に立ちません。