profiling-optimization について
profiling-optimization は、パフォーマンスのボトルネックを特定してコードを改善する開発者向けのスキルです。複数の言語やツールのガイドを備え、最適化前の計測を重視します。
主な機能
- 01実行プロファイルによるボトルネック特定
- 02CPU ボトルネックとホットパスへの注目
- 03Node.js、Chrome DevTools、Python のガイド
- 04データベースクエリ分析とフレームグラフ生成
- 05ベンチマークによる最適化効果の計測
活用シーン
- 01遅いリクエストの調査とレイテンシ削減
- 02CPU 負荷の高いコードパスの特定
- 03アプリケーションのスループット向上
- 04パフォーマンス変更の効果検証
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ aj-geddes/ useful-ai-prompts --skill profiling-optimizationインストール後、Claude Code で/profiling-optimizationを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/benchmarking.mdchrome-devtools-cpu-profile.mddatabase-query-profiling.mdflame-graph-generation.mdnodejs-profiling.mdpython-cprofile.mdscripts/validate-api.shtemplates/api-scaffold.yaml詳細
プロファイリングと最適化
目次
概要
データに基づくアプローチを用いてコードの実行をプロファイリングし、パフォーマンスのボトルネックを特定して、重要な処理経路を最適化します。
使用する場面
- パフォーマンスの最適化
- CPU のボトルネックの特定
- ホットパスの最適化
- 遅いリクエストの調査
- レイテンシの削減
- スループットの向上
クイックスタート
最小限の動作例:
import { performance, PerformanceObserver } from "perf_hooks";
class Profiler {
private marks = new Map<string, number>();
mark(name: string): void {
this.marks.set(name, performance.now());
}
measure(name: string, startMark: string): number {
const start = this.marks.get(startMark);
if (!start) throw new Error(`Mark ${startMark} not found`);
const duration = performance.now() - start;
console.log(`${name}: ${duration.toFixed(2)}ms`);
return duration;
}
async profile<T>(name: string, fn: () => Promise<T>): Promise<T> {
const start = performance.now();
try {
return await fn();
} finally {
// ... (see reference guides for full implementation)
リファレンスガイド
詳細な実装については、references/ ディレクトリを参照してください。
| ガイド | 内容 |
|---|---|
| Node.js Profiling | Node.js のプロファイリング |
| Chrome DevTools CPU Profile | Chrome DevTools の CPU プロファイル |
| Python cProfile | Python cProfile |
| Benchmarking | ベンチマーク |
| Database Query Profiling | データベースクエリのプロファイリング |
| Flame Graph Generation | フレームグラフの生成 |
ベストプラクティス
✅ 推奨事項
- 最適化の前にプロファイリングする
- ホットパスに注力する
- 変更の効果を測定する
- 本番環境に近いデータを使用する
- メモリと速度のトレードオフを考慮する
- 最適化の理由を記録する
❌ 非推奨事項
- プロファイリングせずに最適化する
- わずかな改善のために可読性を犠牲にする
- ベンチマークを省略する
- コールドパスを最適化する
- 測定せずに変更を加える
コメント
Markdown 対応