jetbrains-vmoptions について
JetBrains IDE の VM オプションを検討するスキルです。実際のランタイムと対象プロセスを特定し、根拠に基づく最小限の変更案と検証・ロールバック手順を提示します。
主な機能
- 01ランタイムと対象プロセスの特定
- 02性能データに基づく診断
- 03バージョン別オプション対応の確認
- 04最小限のオプション差分の提案
- 05有効値の検証とロールバック
活用シーン
- 01IDE のフリーズや高 CPU 使用率の調査
- 02ヒープやガベージコレクション問題の分析
- 03IDE とビルドプロセスの問題の切り分け
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ buyoung/ skills --skill jetbrains-vmoptionsインストール後、Claude Code で/jetbrains-vmoptionsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/common-options.mdgc-options.mdmemory-options.mdperformance-validation.mdprerequisite-check.md詳細
JetBrains IDE の VM オプション
まず実行中の IDE を分析し、根拠を示せる範囲で最小限の .vmoptions の差分を提案してください。ユーザーのファイルは作成も編集もしないでください。JVM がフラグを受け付けることは互換性の根拠にはなりますが、パフォーマンスが向上する証明にはなりません。
ワークフロー
1. ランタイムとベースラインを確認する
prerequisite-check.md を読みます。IDE の製品名とビルド、実際の起動ランタイムのベンダー/バージョン/ビルド/パス、バンドル版かカスタム版か、OS、アーキテクチャ、現在有効なコマンドラインとフラグ、現在のカスタムオプション、問題が発生しているプロセスを特定します。
IDE のビルド番号は背景情報にすぎません。どのランタイムがアクティブかを示すものではありません。プロジェクト SDK/JDK は IDE の起動ランタイムではありません。
正確なランタイムを確認できない場合は、情報の収集方法を案内し、回答は診断またはランタイムに依存しない変更に限定してください。IDE のバージョンから、確認されていない JBR のメジャーバージョンを推測しないでください。
2. プロセスの境界を確認する
症状がローカルの IDE プロセス、リモート IDE バックエンド、Gradle デーモン、ビルドプロセス、テスト JVM、言語サーバー、ターミナルプロセス、または別の子プロセスのどれに関係するかを特定します。IDE の .vmoptions が影響するのは、そのファイルが適用される IDE プロセスだけです。
対象範囲外のプロセスのチューニングは、そのプロセス独自の設定に委ねてください。IDE のヒープや GC の変更で Gradle やテスト JVM の問題が解決すると決して主張しないでください。
3. オプションを選ぶ前に診断する
症状から直接 GC を選ぶのではなく、観測された証拠を分類します。
| 証拠 | 最初に調査すること | 関連するリファレンス |
|---|---|---|
| IDE のフリーズまたは UI の停止 | スレッドダンプまたは IDE の CPU プロファイルを取得し、GC/セーフポイントのデータと照合する | common-options.md |
| CPU 使用率が高い、または編集が遅い | 再現可能な IDE の CPU プロファイル | performance-validation.md |
| OOM、メモリ不足の警告、またはヒープの飽和 | ヒープの推移、GC 後の使用量、割り当て率 | memory-options.md |
| GC の停止時間が長い、または頻繁に発生する | IDE プロセスで記録した GC ログまたは JFR | gc-options.md |
| 起動またはインデックス作成が遅い | キャッシュ条件を統制した状態で、起動/インデックス作成のプロファイルを個別に取得する | performance-validation.md |
証拠が不足している場合は、その収集方法を説明してください。フリーズだけでは、原因がガベージコレクターだという証拠にはなりません。
4. バージョンに依存する主張すべてに根拠を示す
提案する各オプションについて、適用されるランタイムのファミリーとビルドを正確に記録し、次の項目を区別します。
- ソースで宣言された値:特定の JBR/OpenJDK ソースリビジョンで宣言された値または利用可否。
- ランタイムが選択した値:ユーザーが実行中の JVM から報告される、エルゴノミクスによる値または初期化された値。
- IDE バンドルの値:製品に同梱された
.vmoptionsファイルまたはカスタムの.vmoptionsファイルで指定されたオプション。
有効な値については、実行中の IDE で取得した jcmd VM.command_line と VM.flags -all の出力を優先してください。ソースに関する主張には、該当する JBR のバージョン、リビジョン、ファイルへのリンクを付けてください。ランタイムのエルゴノミクスで変わる可能性がある場合、ソースの初期化値を最終的な値として示さないでください。
5. 最小限の差分を提案する
診断した原因に関連する参照資料のみを確認します。
| ファイル | 用途 |
|---|---|
| gc-options.md | ガベージコレクターの互換性、選択の競合、測定済みの GC レイテンシ |
| memory-options.md | ヒープ、コードキャッシュ、メタスペース、参照、ネイティブメモリのトレードオフ |
| common-options.md | コンパイラー、文字列、スレッド、診断、プロセス境界 |
| performance-validation.md | アプリケーションの確認と、条件を制御した A/B 比較 |
確認済みの現在の設定に対して、追加・変更・削除する項目のリストを提示するのが基本です。IDE が設定した無関係なオプションやユーザープロパティは保持します。意味上のキーごとに重複を削除し(たとえば、複数の -Xmx 形式やガベージコレクター選択オプション)、どの実効値が適用されるか、またはどの設定が競合するかを説明します。
一度に変更する目的は一つにします。一般的な最適化として、大きな固定ヒープ、-Xms = -Xmx、コンパイル階層の引き下げ、コンパイラーや GC のスレッド数の強制指定を推奨しないでください。これらを正当化する観測済みの条件と、そのコストを明記します。
6. 適用、検証、ロールバックを含める
製品の Help | Edit Custom VM Options アクション、またはすでに確認済みの正確な上書き設定元を使うよう案内します。インストール先のデフォルトファイルを編集するよう勧めてはいけません。
再起動後、jcmd <pid> VM.command_line と jcmd <pid> VM.flags -all を使い、同じ IDE プロセスを検証します。要求した値、選択されたガベージコレクター、無視されたフラグ、廃止されたフラグ、無効なフラグ、上書きされたフラグがないかを確認します。JVM の起動に成功しただけでは十分ではありません。
取得済みのベースラインを復元するか、提案した差分だけを削除するロールバック方法を提示します。性能に関する主張は、performance-validation.md に従います。
出力要件
ユーザーが完全なファイルを明示的に求めていない限り、次の内容を返します。
- 確認済みの環境 — IDE、実際に起動に使われているランタイム/ビルド/パス、バンドル版かカスタム版か、OS/アーキテクチャ、対象プロセス、不明な点。
- 根拠と診断 — 観測事項、考えられる原因、代替要因、バージョン依存情報の出典。
- 提案する差分 — 追加・変更・削除するオプションと、その理由、適用条件、トレードオフ。根拠がない場合は、「VM オプションはまだ変更しない」と明記します。
- 適用と検証 — 正確な設定場所、再起動の要否、実効値の確認方法。
- ロールバック — 取得済みのベースラインを復元する方法。
- 変更前後の比較 — 対象メトリクスと、条件を制御した A/B 手順、または該当する手順へのリンク。
完全な設定を求められた場合は、まず現在有効なオプションまたは元のオプションを確認します。必要な IDE オプションを保持し、意図した変更だけに注釈を付け、差分も別途提示します。
互換性と根拠の範囲
- 実際のランタイムのメジャーバージョンとビルドを確認してから、JBR 17、21、25 を対象にします。
- 未確認のランタイムバージョンや、対象外のランタイムバージョンは不明として扱います。最も近い対応バージョンに置き換えて推定してはいけません。
- プラットフォームやビルドに依存するフラグは、推奨する前に、該当する正確なランタイムバイナリで確認します。
- オプションが認識されること、実際に有効になること、測定によって改善が確認されることを区別します。
- 特定の JBR ビルドにガベージコレクターや診断機能が存在しない場合は、その旨を報告します。
- JBR 25.0.4 のソースやデフォルト設定の確認しかできない場合は、他のビルドや性能面での結果は未検証であると明記します。
対象範囲
このスキルは、JetBrains IDE プロセスの分析、提案する設定文、検証コマンド、測定手順を提供します。IDE 設定の変更、ベンチマークの実行、無関係な JVM プロセスの調整は行わず、性能向上を保証するものでもありません。