performance-optimizer について
performance-optimizerは、フロントエンド、バックエンド、データベースを対象に、計測に基づくアプリケーション性能改善の方法を示すスキルです。遅延やスケーリングの問題を調査する開発者向けに、プロファイリング、キャッシュ、監視を扱います。
主な機能
- 01性能予算と目標指標
- 02プロファイリングとボトルネック特定
- 03データベースクエリ最適化の指針
- 04各層のキャッシュ戦略
- 05フロントエンドとバックエンドの改善段階
- 06監視とアラートの指針
活用シーン
- 01ページ読み込みの遅さを調査
- 02APIの高レイテンシを診断
- 03データベースクエリのボトルネックを特定
- 04性能監視とアラートを計画
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ oakoss/ agent-skills --skill performance-optimizerインストール後、Claude Code で/performance-optimizerを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/backend.mdcaching.mddatabase.mdfrontend.mdmonitoring.mdprofiling.md詳細
パフォーマンス最適化
概要
スタック全体にわたるアプリケーションのパフォーマンス最適化に、体系的なアプローチを提供します。ページの読み込みが遅い場合、API のレイテンシが高い場合、データベースにボトルネックがある場合、またはスケーリングに問題がある場合に使用してください。アプリケーション固有のプロファイリングの代わりにはなりません。最適化の前に、必ず測定してください。
クイックリファレンス
パフォーマンス予算
| 指標 | 目標 | カテゴリー |
|---|---|---|
| Largest Contentful Paint(LCP) | < 2.5s | Core Web Vital |
| Interaction to Next Paint(INP) | < 200ms | Core Web Vital |
| Cumulative Layout Shift(CLS) | < 0.1 | Core Web Vital |
| First Contentful Paint(FCP) | < 1.8s | フロントエンド |
| Time to Interactive(TTI) | < 3.8s | フロントエンド |
| Total Blocking Time(TBT) | < 200ms | フロントエンド |
| API 応答時間(P95) | < 500ms | バックエンド |
| データベースクエリ時間(P95) | < 100ms | データベース |
| サーバー応答時間(TTFB) | < 600ms | バックエンド |
最適化のフェーズ
| フェーズ | 焦点 | 主なアクション |
|---|---|---|
| 1. プロファイリング | 実際のボトルネックを特定する | Chrome DevTools、React Profiler、EXPLAIN ANALYZE |
| 2. データベース | 遅いクエリを解消する | 戦略的なインデックス、N+1 の修正、コネクションプーリング |
| 3. キャッシュ | 重複した処理を減らす | Redis、HTTP ヘッダー、静的アセット向け CDN |
| 4. フロントエンド | バンドルとレンダリング時間を短縮する | バンドル分析、コード分割、リソースヒント、遅延読み込み |
| 5. バックエンド | API 応答を高速化する | サーバーレス最適化、ストリーミング、条件付きリクエスト、キュー |
| 6. モニタリング | パフォーマンスを維持する | APM ツール、アラートしきい値、ダッシュボード |
キャッシュレイヤー
| レイヤー | 範囲 | 期間 |
|---|---|---|
| ブラウザーキャッシュ | HTTP ヘッダー | 静的アセット:1 年(immutable)、HTML:no-cache |
| CDN | Cloudflare、CloudFront | ブラウザーと同じ。デプロイ時にパージ |
| アプリケーション | Redis、Memcached | 可変(例:ユーザーデータは 1 時間) |
| データベース | クエリキャッシュ | 自動 |
よくある誤り
| 誤り | 正しいパターン |
|---|---|
| プロファイリング前に最適化する | Chrome DevTools、EXPLAIN ANALYZE、または APM ツールで最初に測定し、実際のボトルネックを特定します |
| すべてのカラムにインデックスを追加する | WHERE、ORDER BY、JOIN 句のカラムに戦略的にインデックスを設定し、スロークエリログで監視します |
| 大きなテーブルで SELECT * を使う | 必要なカラムのみを選択して、I/O とメモリ使用量を削減します |
| ループ内で N+1 クエリを実行する | イーガーローディングまたは DataLoader によるバッチ処理を使います |
| WHERE 句内で関数を使う | 正規化した値を保存し、生成列を使ってインデックスの利用を維持します |
| 無効化戦略なしでキャッシュする | TTL と書き込み時の無効化ポリシーを定義します。古いキャッシュはキャッシュがない状態よりも悪影響があります |
| 単一のユーティリティのためにライブラリ全体を読み込む | 直接インポートとツリーシェイキングを使います |
| リクエストハンドラー内で重い計算を同期的に実行する | バックグラウンドジョブキュー(BullMQ)に委譲し、すぐに応答します |
委譲
パフォーマンス最適化に取り組む際は、以下に委譲してください。
frontend-builder-- React 固有のパフォーマンスパターンapplication-security-- レート制限と DDoS 対策ci-cd-architecture-- ビルドパイプラインの最適化
参考資料
- プロファイリングと測定 -- Chrome DevTools、React Profiler、Node.js/Python のプロファイリング、データベースの EXPLAIN
- データベースの最適化 -- 戦略的なインデックス、N+1 の解消、クエリの最適化、コネクションプーリング
- キャッシュ戦略 -- Redis のパターン、HTTP キャッシュヘッダー、CDN の設定
- フロントエンドのパフォーマンス -- バンドル分析、コード分割、リソースヒント、サードパーティースクリプト、モバイルのパフォーマンス、React のパターン
- バックエンドのパフォーマンス -- サーバーレスの最適化、ストリーミングレスポンス、条件付きリクエスト、バックグラウンドキュー、レート制限
- 監視とアラート -- APM ツール、カスタム監視、ダッシュボード、アラートしきい値
コメント
Markdown 対応