mcpField
P
python-performance-optimization

python-performance-optimization

github.com/jurgendn開発1138 回インストール6 週間前に更新
リポジトリ

python-performance-optimization について

Python 開発者向けの性能最適化スキルです。計測に基づいてボトルネックを特定し、正確性を確認しながら改善前後の結果を記録します。

主な機能

  1. 01ワークロードと目標指標の収集
  2. 02ボトルネック別のプロファイラー選択
  3. 03最適化手法の提示
  4. 04正確性の確認と再計測
  5. 05結果記録テンプレート

活用シーン

  1. 01遅い Python ワークロードの調査
  2. 02CPU・メモリ用プロファイラーの選択
  3. 03計測したボトルネックへの変更計画
  4. 04性能改善結果の記録

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/jurgendn/agent-skills --skill python-performance-optimization

インストール後、Claude Code で/python-performance-optimizationを入力して読み込まれたか確認します。

同梱ファイルreferences/advanced-patterns.md

詳細

Python のパフォーマンス最適化

まず測定します。重要なボトルネックを最適化します。パフォーマンスを変更するたびに、正しさを検証するテストを用意しておきます。

NumPy のベクトル化、キャッシュ、メモリ管理、並列処理、非同期 I/O、データベースの最適化、ベンチマークツールなどの高度なパターンについては、references/advanced-patterns.md を参照してください。

事前情報の収集

以下を収集します。

  • ワークロードと入力サイズ;
  • 対象の指標:レイテンシ、スループット、メモリ、CPU、I/O;
  • 現在の測定値と目標値;
  • 環境とハードウェア;
  • 正しさを検証するテストまたはゴールデン出力。

プロファイリングの順序

  1. 現実的な入力で、遅い処理を再現します。
  2. シンプルな実時間計測を追加します。
  3. 適切なプロファイラーを使用します。
    • CPU には cProfile / py-spy;
    • 行単位のホットスポットには line_profiler;
    • メモリには memory_profiler / tracemalloc;
    • 本番環境のレイテンシにはアプリケーションのメトリクス。
  4. 変更する価値のある、最小のホットパスを特定します。
  5. 1つのボトルネックを最適化します。
  6. 再測定し、正しさを検証します。

よくある修正の種類

  • より優れたアルゴリズムまたはデータ構造を使います。
  • キャッシュで繰り返しの処理を避けます。
  • I/O やデータベース呼び出しをバッチ処理します。
  • メモリ使用量を抑えるためにジェネレーターやストリーミングを使います。
  • 適切な場合は、NumPy/Pandas/JAX/PyTorch で数値処理をベクトル化します。
  • 真に CPU バウンドな並列処理は、マルチプロセッシングまたはネイティブライブラリに移します。

ルール

  • ベースラインを測定せずに最適化しないでください。
  • 正しさを損なう速度向上を、明示せずに行わないでください。
  • 実行頻度の低いコードを最適化しないでください。
  • マイクロ最適化よりアルゴリズムによる改善を優先します。
  • 変更前後の数値と入力サイズを記録します。

出力

以下を返します。

  • パフォーマンス目標;
  • 測定方法;
  • ボトルネックの根拠;
  • 期待される効果の大きい順に並べた最適化計画;
  • 正しさを保証する仕組み;
  • 変更前後の報告テンプレート。

コメント