総合 274 位⌘ 開発・コードClaude Code 対応Codex 対応MIT

performance-optimization

画面とサーバーの性能を、測ってから直させる。測る・突き止める・直す・測り直す・守るの 5 段で進め、測り直して差が誤差の内なら元に戻させる。N+1・索引・接続の数・キャッシュ・画像・再描画・バンドルの直し方を例つきで添える

addyosmaniagent-skillsSKILL.md の原文

npx skills add addyosmani/agent-skills/performance-optimization

入れる前にこのスキルがすること・注意点・SKILL.md の原文を確かめてください。解析は安全性の判定ではありません。

インストール
69,662
実用度
43
GitHub star
113,697
最終更新
2026/11/2

頼み方の例

そのままコピーして使えます

performance-optimizationスキルを使って、一覧画面の遅さを調べてください。まず今の数値を測って基準を記録し、原因を 1 つに絞ったところで止めて、直すのは私が確認してからにしてください。

対象のファイルや状況は、ご自身の作業に合わせて置き換えてください。

このスキルがすること

SKILL.md の記述から機械的に抽出
  • シェルコマンドを実行する記述があります
  • ファイルを書き換える記述があります
  • パッケージを導入する記述があります

これは安全性の判定ではありません。 SKILL.md にそう書かれているという事実だけを並べています。実際に問題があるかは使い方と文脈で決まるため、当サイトでは断定しません。導入前に SKILL.md の原文を確認してください。

SKILL.md の規模

文字数
16,783
手順
18
コード例
7
同梱ファイル
1

コードブロックの言語: bash、javascript

この解説は再確認中です。 2026年10月30日に原本(SKILL.md)が更新されており、以下の解説が現在の内容と合っていない可能性があります。最新の内容は GitHub の SKILL.md を確認してください。

いつ使うか

性能の問題があるという証拠があって、それを測って直したいときに使います。本文の「使うとき」は、仕様に性能の要件がある(読み込みの時間の予算や応答の時間の約束)、利用者や監視が遅さを報告している、Core Web Vitals が基準を下回る、変更で遅くなった疑いがある、大きなデータや多くの通信を扱う機能を作る、の 5 つです。

最初の一文が「最適化の前に測れ」です。測らない性能の作業は当て推量で、大事なところを良くしないまま複雑さだけを足す、と書いています。

進め方(測る・突き止める・直す・測り直す・守る)
5 段
例つきの直し方(サーバー 5・画面 3)
8 つ
同梱ファイル(2026-10-23 時点)
1 件
SKILL.md(2026-10-23 時点)
16,698 バイト

5 段で進める

  1. 測る実際のデータで基準を取る
  2. 突き止める思い込みではなく、実際の詰まりを見つける
  3. 直す突き止めた 1 つだけを直す
  4. 測り直す同じやり方で測り、残すか戻すかを決める
  5. 守る監視か試験を足して、また遅くならないようにする

測るのは 2 通り、両方使う

1 つは Lighthouse や DevTools の Performance タブのような、条件をそろえて再現できる合成の計測です。CI で遅くなったのを捕まえ、個別の問題を切り分けるのに向きます。もう 1 つは web-vitals ライブラリや CrUX のような、実際の利用者の環境での計測で、直したことで体験が良くなったかを確かめるのに要る、と書かれています。

本文は Core Web Vitals の基準も表で示しています。

指標良い改善が要る悪い
LCP2.5 秒以下4.0 秒以下4.0 秒超
INP200ms 以下500ms 以下500ms 超
CLS0.1 以下0.25 以下0.25 超

症状から、測り始める場所を決める

何が遅いかで分けた木が載っています。初回の読み込み(バンドルの大きさ、サーバーの応答、描画を止める資源)、操作のもたつき(主スレッドの 50ms を超える長い処理、再描画、強制的な再レイアウト)、画面を移ったあと(API の応答、取得の連鎖)、サーバーと API(1 つの口だけ遅いのか、全部遅いのか、時々遅いのか)の 4 つです。

直すのは、突き止めた 1 つだけ

  • N+1 の問い合わせ行ごとに問い合わせず、関連を同じ問い合わせで取る
  • 上限の無い取得一覧の口は件数の上限と安定した順で必ずページ送り
  • 索引を使わない問い合わせ索引を足す前に EXPLAIN ANALYZE で実行計画を読む
  • 接続の枯渇プールはプロセスに 1 つ。台数かける上限をデータベースの上限の内に
  • キャッシュの欠け作るのが重く、変わるより読まれるほうがずっと多いものだけ
  • 画像幅と高さを必ず書く。LCP の画像は優先度を上げ、下の画像は遅延読み込み
  • 余計な再描画描画のたびに作る値を外へ出す。memo は計測が重いと示した所だけ
  • 大きなバンドル経路ごとの分割と、重くて使われにくい機能の遅延読み込み

それぞれの具体的な直し方は、同梱の references/optimization-patterns.md に例つきで載っています。本文は、要るものだけを、そのコードに着いたときに開け、と案内しています。

索引は「足す」ではなく「読む」

「索引を足せ」は推測で、実行計画が計測だ、という書き方です。索引が無い全件の走査、行数の見積もりが実際と桁で違う(統計が古いので索引ではなく ANALYZE を流す)、走査の上に並べ替えが載っている、の 3 つでそれぞれ直し方が違います。

選択性の低い多数派の値、先頭が % の LIKE、列に関数をかけた条件には、ふつうの索引は効きません。索引はすべての書き込みにかかる税で、付けたあとに実行計画が変わらないなら戻せ、と書かれています。

キャッシュの鍵は正しさを決める

応答を変える入力(テナント・言語・権限・機能の切り替え)は全部、キャッシュの鍵に入れます。閲覧者を鍵から外すと、ある利用者のデータが別の利用者に出る、と本文は警告しています。

古さが正しさの不具合になるもの(残高・権限・決済時の在庫)はキャッシュしません。無効にするやり方は 1 つに決め、許せる古さの幅をはっきり書け、とも書かれています。

測り直して、差が無ければ戻す

基準との比較扱い
閾値を超えて良くなり、試験も緑残す。前後の数値をコミットのメッセージに書く
誤差の内で差が無い戻す
悪くなった戻す
良くなったが試験が赤戻す

測り直しは、基準と同じコマンド・同じ条件・同じ回数で行います。変えるのは一度に 1 つで、±5% の揺れの中の 3% の改善は改善ではない、と書かれています。

試したことは、戻したものも記録する

戻した変更は git の履歴に残らないので、同じ失敗を次の四半期にまた試すことになる、という理由です。プルリクエストの説明の節か、リポジトリの PERF.md に、試したこと・前後の数値・判定・理由の表を残せ、としています。

また遅くならないように守る

画面のある機能では、取り込む前の合成の計測による予算の関門と、実際の利用者の数値(p75)の監視の 2 層を勧めています。予算の例は、初回の JavaScript が gzip で 200KB 未満、CSS が 50KB 未満、上の方の画像が 1 枚 200KB 未満、フォントが合計 100KB 未満、API の応答が p95 で 200ms 未満などです。

使わないほうがいいとき

本文が名指しで外しているのは、問題の証拠が無いうちの最適化です。早すぎる最適化は、得られる性能より高くつく複雑さを足す、と書いています。

測って報告するのが目的なら

web-perf は Chrome DevTools でページを測り、何をどう勧めるかに決まりを持たせたスキルです。効果が 0 ミリ秒のものは勧めない、他人のサイトならソースは見ない、など、報告の質に重きがあります。

このスキルは、自分のコードを直し、測り直して残すか戻すかまでを扱います。サーバーの問い合わせ・接続・キャッシュまで含むので、画面の速さだけを見たいなら web-perf のほうが軽く済みます。

変更全体を見たいなら

取り込む前に差分全体を見るなら、同じ公開元の code-review-and-quality が性能を 5 つの軸の 1 つとして点検し、詳しい計測と最適化はこのスキルを見よ、と案内しています。

React と TypeScript 以外

画面の例は React(React.memo・useMemo・Suspense)、サーバーの例は TypeScript の ORM 風の書き方と SQL です。考え方はほかの構成でも使えますが、例をそのまま写すことはできません。

注意点

SKILL.md には、外部の宛先へデータを送る記述はありません。シェルで動かすものとして、CI の例に npx bundlesize --config bundlesize.config.json と npx lhci autorun が挙がっています。直すことが仕事なので、作業ではコードが書き換わり、効果が無ければ戻されます。

試験を変えて得た改善は改善ではない

正しさが指標に先立つ、という決まりがあります。検証を飛ばす、新しさが要るものをキャッシュする、要る await を外す、のように、製品に要る仕事を落として速くしたものは後退だ、と書かれています。危険の兆しにも「試験を変えた・飛ばした・消した上での改善」が入っています。

予算や数字には出典が付いていない

予算の例(バンドル 200KB など)は本文の目安で、根拠は書かれていません。「100ms の遅れが成約率に響くという研究がある」という一文にも出典は示されていないので、目安として読むのが妥当です。

同梱は 1 件、点検表はフォルダの外

同梱は references/optimization-patterns.md の 1 件で、9,692 バイトです(2026-10-23 時点)。本文と同梱ファイルが案内する詳しい点検表 performance-checklist.md は、リポジトリの直下の references/ にあり、スキルのフォルダの外です。このスキルを 1 件だけ入れると、点検表は手元に無いことがあります。

ライセンス

リポジトリのライセンスは MIT です。

インストール数の推移

日次で記録

10月18日 〜 11月7日(20日分)

インストール数と 1 日あたりの増加は Skillselion が に集計した値です。上流の更新は数日おきなので、前日比ではありません。GitHub star と最終更新は に GitHub から取得しました。

よくある質問

直しても数値が変わらなかったらどうなりますか

元に戻します。本文は「中立は残すのではなく戻す」と言い切っていて、残したコードは永遠に保守することになる、それに見合う働きをさせよ、と書いています。戻した試みも、試したことの記録の表に残して、次の人やエージェントが同じことを試さないようにします。

サーバー側の遅さにも使えますか

使えます。測る例には応答の時間の記録、アプリの性能監視、時間付きの問い合わせの記録、console.time が挙がっていて、直し方の 8 つのうち 5 つ(N+1・上限の無い取得・索引・接続の枯渇・キャッシュ)がサーバー側です。

同じリポジトリの `/webperf` とは何が違いますか

公開元の /webperf は、web-performance-auditor という役のサブエージェントを出して Web の性能を監査し、報告を返す命令です(2026-10-23 確認)。その役の定義は、細かい最適化の手引きと直し方はこのスキルに任せ、報告は監査の水準にとどめよ、と書いています。監査の報告が欲しいなら /webperf、直して測り直すならこのスキル、という分担です。

対応しているエージェントはどれですか

公開元の README が、Claude Code(推奨と明記)と Codex のそれぞれに入れ方を案内しています(2026-10-23 確認)。README はほかに Cursor・Gemini CLI・GitHub Copilot などへの入れ方も載せていますが、当サイトが表示しているのは Claude Code と Codex の 2 つです。

同じ分類のスキル

⌘ 開発・コード

開発・コードのスキルをすべて見る →

← スキル一覧に戻る/ このスキルを他と比べる