161-java-profiling-detect について
信頼できるインストール済みの async-profiler を使い、Javaアプリケーションの性能データを収集するスキルです。CPU、メモリ、ロック、GC、I/Oを計測し、タイムスタンプ付きのフレームグラフとJFRを出力します。
主な機能
- 01インストール済みasync-profilerの使用
- 02CPU・メモリ・ロック・GC・I/Oの計測
- 03プロファイリングスクリプトの設定と実行
- 04フレームグラフとJFRの出力
活用シーン
- 01Javaアプリケーションの性能データ収集
- 02ロック競合やGC問題の調査
- 03後続分析用のフレームグラフとJFRの作成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ jabrena/ plinth --skill 161-java-profiling-detectインストール後、Claude Code で/161-java-profiling-detectを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/161-java-profiling-detect.mdscripts/run-java-process-for-profiling.shprofile-java-process.sh詳細
Java プロファイリングワークフロー / ステップ 1 / 潜在的な問題を測定するためのデータ収集
信頼できる、事前にインストール済みの async-profiler v4.x、問題主導型の対話式プロファイリングスクリプト、CPU ホットスポット、メモリリーク、ロック競合、GC の問題、I/O ボトルネックに関する包括的なデータ収集を使用して、Java プロファイリング検出フェーズをセットアップします。オーバーヘッドを低減するため、JEP 518(協調的サンプリング)と JEP 520(メソッドタイミング)を使用します。
このスキルで扱う内容
- プロファイリング用 JVM フラグを指定してアプリケーションを実行する(run-java-process-for-profiling.sh)
- 対話式プロファイリングスクリプト(profiler/scripts/profile-java-process.sh) — テンプレートをそのままコピー
- ディレクトリ構成:profiler/scripts/、profiler/results/、profiler/current/
- OS/アーキテクチャの自動検出と、信頼できる事前インストール済み async-profiler の検証
- CPU、メモリ、ロック、GC、I/O のプロファイリングモード
- タイムスタンプ付きの結果を含む、フレームグラフと JFR の出力
対象範囲: bash スクリプトのテンプレートを、変更や解釈を加えずにそのまま使用してください。
制約事項
bash スクリプトをテンプレートから正確にコピーしてください。プロファイリングとの互換性を確保するため、JVM フラグが適用されていることを確認してください。プロファイラーをアタッチする前に、Java プロセスが実行中であることを確認してください。
- 重要:bash スクリプトのテンプレートを正確にコピーしてください。変更、解釈、拡張は行わないでください
- セットアップ:プロファイラーのディレクトリ構成(profiler/scripts、profiler/results)を作成してください
- サプライチェーン:実行時にプロファイラーのバイナリをダウンロードしないでください。信頼できる事前インストール済みの async-profiler ディストリビューションを指すよう、
ASYNC_PROFILER_HOMEまたはprofiler/currentを指定してください - 実行可能化:chmod +x でスクリプトを実行可能にしてください
- 適用前:スクリプトの正確なテンプレートとセットアップ手順について、リファレンスを読んでください
- エッジケース:依頼の対象範囲が曖昧な場合は、変更を適用する前に作業を中断し、確認の質問をしてください
- エッジケース:必須の入力、ファイル、ツールが不足している場合は、不足しているものを報告し、セットアップ手順の案内を続けてよいか確認してください
このスキルを使用する場面
- プロファイリングを使ってコードを改善する
- プロファイリングを適用する
- プロファイリングを使ってコードをリファクタリングする
- プロファイリングのサポートを追加する
- Java のパフォーマンス分析用に JFR または async-profiler のデータを収集する
ワークフロー
- プロファイリングのセットアップリファレンスを読む
references/161-java-profiling-detect.md を読み、スクリプトのテンプレートを記載どおりに使用してください。
- プロファイラーの作業領域とスクリプトを作成する
profiler/scripts と profiler/results を作成し、セットアップスクリプトとプロファイリングスクリプトをそのままコピーして、実行可能にしてください。
- プロファイリング互換性を確保してアプリケーションを実行する
必要なプロファイリング用 JVM フラグを指定して Java プロセスを起動し、対象プロセスにプロファイラーをアタッチできることを確認してください。
- プロファイリング成果物を収集する
CPU、メモリ、ロック、GC、I/O のデータを取得し、分析用にタイムスタンプ付きのフレームグラフと JFR の出力を生成してください。
リファレンス
詳細なガイダンス、例、制約事項については、references/161-java-profiling-detect.md を参照してください。