Anthropic Claudeソフトウェア開発⭐ リポ 21品質スコア 73/100
profile
pprofを使用してCPUとメモリのプロファイリングを実行し、パフォーマンスのボトルネックを特定できます。リソース使用率が高い問題を調査する際に使用します。
description の原文を見る
Run CPU and memory profiling with pprof to identify performance hotspots. Use when investigating high resource usage.
SKILL.md 本文
CPU とメモリプロファイリング
pprof を使用して Go コードをプロファイルし、CPU ホットスポットとメモリアロケータを特定します。
使用方法
/profile cpu ./internal/index/- インデックスパッケージの CPU プロファイリング/profile memory ./internal/repo/- リポジトリパッケージのメモリプロファイリング/profile all ./...- すべてのパッケージの CPU とメモリの両方
ステップ
-
引数を解析する
- 最初の引数: プロファイルタイプ(
cpu、memory、またはall) - 2 番目の引数: パッケージパス(デフォルトは
./...)
- 最初の引数: プロファイルタイプ(
-
プロファイル出力ディレクトリを作成する
mkdir -p .profiles -
プロファイリングベンチマークを実行する
CPU プロファイリングの場合:
go test -cpuprofile=.profiles/cpu.prof -bench=. $PACKAGE 2>&1メモリプロファイリングの場合:
go test -memprofile=.profiles/mem.prof -bench=. $PACKAGE 2>&1 -
CPU プロファイルを分析する
go tool pprof -top -cum .profiles/cpu.prof 2>&1 | head -30以下を特定します:
- 累積時間による上位 10 の CPU 消費者
- 高い自己時間を持つ関数(計算ホットスポット)
- 予期しないエントリ(潜在的な最適化の対象)
-
メモリプロファイルを分析する
go tool pprof -top -alloc_space .profiles/mem.prof 2>&1 | head -30以下を特定します:
- 合計バイト数によるトップアロケータ
- 高いアロケーション数を持つ関数
- GC 圧力の潜在的な原因
-
フレームグラフデータを生成する(必要な場合)
go tool pprof -raw .profiles/cpu.prof > .profiles/cpu.raw -
結果をレポートする
レポートの構造:
CPU ホットスポット
関数 Self% Cum% 説明 メモリアロケータ
関数 バイト アロケーション数 説明 最適化の提案
- 具体的で実行可能な推奨事項をリストアップする
- 該当する場合は行番号を参照する
- パターンを記録する(例: ループ内の繰り返しアロケーション)
結果の解釈
CPU プロファイル指標
- 高い self%: 直接的な計算ホットスポット
- 高い cum% だが低い self%: 高価な関数を呼び出している
- runtime.*: GC またはスケジューラのオーバーヘッド
メモリプロファイル指標
- 高い alloc_space: 総メモリ圧力
- 高い alloc_objects: 多くの小さなアロケーションからの GC 圧力
- 繰り返されるパターン: ループアロケーション、文字列連結
Veloria の一般的なホットスポット
以下の問題に注意してください:
(*Index).Search- 正規表現コンパイル、行読み込み(*Repository).Load- インデックスファイルマッピング(*IndexedExtension).Update- ホットスワップ操作- HTTP ハンドラ - JSON マーシャリング、レスポンス書き込み
クリーンアップ
プロファイルファイルは .profiles/ に保存されます。まだ存在しない場合は .gitignore に追加してください。
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- PeterBooker
- リポジトリ
- PeterBooker/veloria
- ライセンス
- MIT
- 最終更新
- 2026/4/18
Source: https://github.com/PeterBooker/veloria / ライセンス: MIT