java-performance について
Java 開発者向けに JVM の性能最適化を支援するスキルです。GC 調整、メモリ分析、CPU プロファイリング、JMH によるベンチマークや、一般的な問題の調査方法を扱います。
主な機能
- 01GC 調整の指針
- 02メモリとリークの分析
- 03CPU ホットスポットの特定
- 04JMH ベンチマーク
- 05コンテナ設定の最適化
活用シーン
- 01レイテンシやスループットに合わせた GC 調整
- 02CPU ホットスポットの特定
- 03メモリリークの調査
- 04コード性能のベンチマーク
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ pluginagentmarketplace/ custom-plugin-java --skill java-performanceインストール後、Claude Code で/java-performanceを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
assets/config.yamljvm-options.yamlschema.jsonreferences/GUIDE.mdPATTERNS.mdscripts/validate.py詳細
Java パフォーマンススキル
プロファイリング、GC チューニング、メモリ解析によって JVM のパフォーマンスを最適化します。
概要
このスキルでは、ガベージコレクションのチューニング、メモリ解析、CPU プロファイリング、JMH によるベンチマークなど、JVM のパフォーマンス最適化を扱います。
このスキルを使用するタイミング
次のような場合に使用します。
- 低レイテンシまたはスループット向上のために GC を調整する
- CPU のホットスポットをプロファイリングする
- メモリリークを解析する
- コードのパフォーマンスをベンチマークする
- コンテナの設定を最適化する
クイックリファレンス
GC のプリセット
# High-throughput
-XX:+UseG1GC
-XX:MaxGCPauseMillis=200
-Xms4g -Xmx4g
-XX:+AlwaysPreTouch
# Low-latency
-XX:+UseZGC
-XX:+ZGenerational
-Xms8g -Xmx8g
# Memory-constrained
-XX:+UseSerialGC
-Xms512m -Xmx512m
-XX:+UseCompressedOops
# Container-optimized
-XX:+UseContainerSupport
-XX:MaxRAMPercentage=75.0
-XX:+ExitOnOutOfMemoryError
プロファイリングコマンド
# Thread dump
jstack -l <pid> > threaddump.txt
# Heap dump
jmap -dump:format=b,file=heap.hprof <pid>
# GC analysis
jstat -gcutil <pid> 1000 10
# Flight recording
jcmd <pid> JFR.start duration=60s filename=app.jfr
# Async profiler
./profiler.sh -d 30 -f profile.html <pid>
JMH ベンチマーク
@BenchmarkMode(Mode.Throughput)
@Warmup(iterations = 3, time = 1)
@Measurement(iterations = 5, time = 1)
@State(Scope.Benchmark)
public class MyBenchmark {
@Benchmark
public void testMethod(Blackhole bh) {
bh.consume(compute());
}
}
GC の比較
| GC | レイテンシ | スループット | ヒープサイズ |
|---|---|---|---|
| G1 | 中 | 高 | 4-32GB |
| ZGC | 非常に低い | 中 | 8GB-16TB |
| Shenandoah | 非常に低い | 中 | 8GB+ |
| Parallel | 高 | 非常に高い | 任意 |
トラブルシューティング
| 問題 | 原因 | 解決策 |
|---|---|---|
| GC の過剰な実行 | ヒープが小さすぎる | ヒープを増やす |
| レイテンシが高い | GC の停止 | ZGC に切り替える |
| メモリリーク | オブジェクトの保持 | ヒープダンプ + MAT |
| CPU スパイク | ホットループ | プロファイリング + 最適化 |
使用方法
Skill("java-performance")
コメント
Markdown 対応