python-performance-optimization について
Python 開発者向けの性能最適化スキルです。計測に基づいてボトルネックを特定し、正確性を確認しながら改善前後の結果を記録します。
主な機能
- 01ワークロードと目標指標の収集
- 02ボトルネック別のプロファイラー選択
- 03最適化手法の提示
- 04正確性の確認と再計測
- 05結果記録テンプレート
活用シーン
- 01遅い Python ワークロードの調査
- 02CPU・メモリ用プロファイラーの選択
- 03計測したボトルネックへの変更計画
- 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;
- 現在の測定値と目標値;
- 環境とハードウェア;
- 正しさを検証するテストまたはゴールデン出力。
プロファイリングの順序
- 現実的な入力で、遅い処理を再現します。
- シンプルな実時間計測を追加します。
- 適切なプロファイラーを使用します。
- CPU には
cProfile/py-spy; - 行単位のホットスポットには
line_profiler; - メモリには
memory_profiler/tracemalloc; - 本番環境のレイテンシにはアプリケーションのメトリクス。
- CPU には
- 変更する価値のある、最小のホットパスを特定します。
- 1つのボトルネックを最適化します。
- 再測定し、正しさを検証します。
よくある修正の種類
- より優れたアルゴリズムまたはデータ構造を使います。
- キャッシュで繰り返しの処理を避けます。
- I/O やデータベース呼び出しをバッチ処理します。
- メモリ使用量を抑えるためにジェネレーターやストリーミングを使います。
- 適切な場合は、NumPy/Pandas/JAX/PyTorch で数値処理をベクトル化します。
- 真に CPU バウンドな並列処理は、マルチプロセッシングまたはネイティブライブラリに移します。
ルール
- ベースラインを測定せずに最適化しないでください。
- 正しさを損なう速度向上を、明示せずに行わないでください。
- 実行頻度の低いコードを最適化しないでください。
- マイクロ最適化よりアルゴリズムによる改善を優先します。
- 変更前後の数値と入力サイズを記録します。
出力
以下を返します。
- パフォーマンス目標;
- 測定方法;
- ボトルネックの根拠;
- 期待される効果の大きい順に並べた最適化計画;
- 正しさを保証する仕組み;
- 変更前後の報告テンプレート。
コメント
Markdown 対応