# Python 性能最適化 (python-performance-optimization)

> cProfile やメモリプロファイラなどで Python コードをプロファイルし、定番のパターンでボトルネックを最適化します。

- カテゴリ: [パフォーマンス](https://www.myskills.tools/ja/categories/performance/)
- 提供元: コミュニティ · Seth Hobson
- リポジトリ: https://github.com/wshobson/agents/tree/main/plugins/python-development/skills/python-performance-optimization (commit 0f73766)
- SKILL.md: https://github.com/wshobson/agents/blob/main/plugins/python-development/skills/python-performance-optimization/SKILL.md
- インストールコマンド: `npx skills add wshobson/agents --skill python-performance-optimization`
- ライセンス: MIT
- 対応ツール: Claude Code, Codex, Cursor, Copilot, OpenCode
- 権限: read-repo ✓, write-files ✓, shell ✓, network ✗
- 状態: スキャン済み
- ルールスキャンですべてのリスクを検出できるわけではありません。インストール前にこのスキルの SKILL.md を読み、権限を確認してください。

## 基本ルール

最適化の前にプロファイルし、本当のボトルネックを見つけます。

## 実行フェーズ

1. **時間の計測** — time で大まかに測り、timeit でより正確で再現性のある実行時間を得ます。
2. **プロファイル** — CPU は cProfile、行単位は line_profiler、メモリは memory_profiler、稼働中の本番プロセスは py-spy で分析します。
3. **ホットパス最適化** — 頻繁に実行されるコードに絞り、dict/set による検索、内包表記、ジェネレータ、組み込み関数、lru_cache、I/O のバッチ化を使います。
4. **高度な手法** — 数値計算には NumPy、CPU バウンドにはマルチプロセス、I/O バウンドには非同期 I/O を使い、DB 操作のバッチ化とクエリ最適化を行います。

## 権限の説明（SKILL.md より）

| 機能 | 必要か | 説明 |
|---|---|---|
| ファイル書き込み | 必要 | 最適化パターンを適用するために Python コードを変更します。 |
| コマンド実行 | 必要 | timeit、cProfile、kernprof、memory_profiler、py-spy などの分析ツールを実行します。 |
| 外部通信 | 不要 | ネットワークアクセスは求めていませんが、一部のツールは事前に pip でのインストールが必要です。 |

## SKILL.md のフロントマター（YAML）

```yaml
---
name: python-performance-optimization
description: Profile and optimize Python code using cProfile, memory profilers, and performance best practices. Use when debugging slow Python code, optimizing bottlenecks, or improving application performance.
---
```

ホーム: https://www.myskills.tools/ja/ · URL: https://www.myskills.tools/ja/skills/python-performance-optimization/
