python-performance-optimization について
Pythonアプリケーションの性能分析と改善を支援するガイドスキルです。CPU、メモリ、データベース、I/Oを扱い、測定方法と環境ごとの検証にも触れます。
主な機能
- 01CPUプロファイリングとボトルネック分析
- 02メモリ使用量とリークの調査
- 03データベースとI/Oの最適化
- 04アルゴリズムと処理パイプラインの改善
- 05測定と検証の指針
活用シーン
- 01Pythonアプリの遅延要因を特定
- 02メモリ消費の削減やリークの調査
- 03データベースクエリやI/Oの改善
- 04データ処理やCPU負荷の高いコードの評価
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ sickn33/ agentic-awesome-skills --skill python-performance-optimizationインストール後、Claude Code で/python-performance-optimizationを入力して読み込まれたか確認します。
同梱ファイルresources/implementation-playbook.md
詳細
Python パフォーマンスの最適化
CPU プロファイリング、メモリ最適化、実装のベストプラクティスなど、Python コードのプロファイリング、分析、最適化について解説する包括的なガイドです。
このスキルを使用する場面
- Python アプリケーションのパフォーマンスのボトルネックを特定する
- アプリケーションのレイテンシと応答時間を短縮する
- CPU 負荷の高い処理を最適化する
- メモリ消費量とメモリリークを削減する
- データベースクエリのパフォーマンスを向上させる
- I/O 操作を最適化する
- データ処理パイプラインを高速化する
- 高性能なアルゴリズムを実装する
- 本番環境のアプリケーションをプロファイリングする
このスキルを使用しない場面
- タスクが Python のパフォーマンス最適化に関係しない場合
- この範囲外の別の分野やツールが必要な場合
手順
- 目標、制約、必要な入力を明確にします。
- 関連するベストプラクティスを適用し、結果を検証します。
- 実行可能な手順と検証方法を提示します。
- 詳細な例が必要な場合は、
resources/implementation-playbook.mdを開きます。
リソース
- 詳細なパターンと例については、
resources/implementation-playbook.mdを参照してください。
制限事項
- このスキルは、タスクが上記の範囲に明確に該当する場合にのみ使用してください。
- 出力を、環境固有の検証、テスト、専門家によるレビューの代わりとして扱わないでください。
- 必要な入力、権限、安全上の境界、成功基準が不足している場合は、作業を中断して確認してください。
測定と運用上の制限
このプレイブックには、単独で実行するデモが含まれていますが、検証済みのベンチマークスイートではありません。このスキルでは、実行時間や高速化の実績は確認されていません。代表的な入力を使用し、処理量を揃え、実行を繰り返し、インタープリターとプラットフォームのバージョンを記録してください。フィボナッチ数の比較では、キャッシュなしの呼び出しを1回、キャッシュがほぼウォームな状態での呼び出しを1,000回測定しています。1回あたりに正規化し、コールド状態とウォーム状態を分けて報告してください。lru_cache(maxsize=None) は上限なくエントリーを保持します。変化するデータや機密データには、適切なエビクションと無効化の方法を選択してください。
sys.getsizeof で得られるのは浅いサイズです。通常のインスタンスは __dict__ も保持し、共有または別途確保された値への参照を持ちます。出力されるオブジェクトサイズの乗算結果は、プロセス全体のメモリ使用量ではなく、__slots__ との完全で公正な比較にもなりません。tracemalloc または適切なプロセスプロファイラーを使用して、代表的な割り当てを測定してください。
承認されたテスト用エンドポイントと、破棄可能なデータベースのみを使用してください。クエリの例では、既存のデータベースを読み取り専用で開き、提示されたスキーマが必要です。本番環境のプロファイリングには、許可と収集範囲の制限が必要です。プロファイルからコードパス、引数、その他の機密性の高いプロセスデータが漏えいする可能性があります。成果物は非公開で保管してください。ここに示す例は、実行もパフォーマンステストも行われていません。