返回 Skill 列表
extension
分类: 开发与工程无需 API Key

jetbrains-vmoptions

提供JetBrains IDE虚拟机选项知识,用于特定版本的GC选择和内存/性能调优(JDK 17/21, IDE 222+)。仅支持跨平台。

person作者: jakexiaohubgithub

JetBrains IDE VM Options

Generate .vmoptions configurations for JetBrains IDEs. Output as Markdown code blocks (one option per line, # comments). Do not generate files directly.

Workflow

1. Identify IDE version (blocking)

Read prerequisite-check.md for validation logic. IDE version determines the JDK (17 vs 21), which controls which GC collectors and flags are available. Never skip this step — wrong version means wrong recommendations.

2. Understand the user's goal

Match the user's problem to a tuning strategy:

| User says | Primary goal | Start with | |-----------|-------------|------------| | "freezes", "hangs", "lag", "UI stutter" | Low GC pause times | gc-options.md → ZGC/Shenandoah | | "slow indexing", "build is slow" | Throughput | gc-options.md → G1GC/Parallel | | "out of memory", "OOM", "large project" | Memory capacity | memory-options.md → heap sizing | | "startup is slow" | Fast startup | common-options.md → tiered compilation | | "general tuning", "optimize" | Balanced | All references as needed |

3. Compose options from references

Read only the relevant reference files. Each reference includes flag descriptions, defaults, usage notes, and example configurations.

| File | Content | Read when | |------|---------|-----------| | prerequisite-check.md | IDE version validation, JDK mapping | Always (step 1) | | gc-options.md | GC selection and tuning flags | GC-related goals | | memory-options.md | Heap, code cache, metaspace, large pages | Memory-related goals | | common-options.md | Compiler, strings, diagnostics, threads | Performance/startup goals |

4. Self-review before presenting

  • Verify every flag is compatible with the user's JDK version
  • Remove flags that conflict with each other (e.g., two different GC activations)
  • Remove flags the user didn't ask about and doesn't need — lean configs are better
  • Include a brief comment explaining each section's purpose

5. Present with context

Show the final .vmoptions block with:

  • A header comment noting the IDE version and JDK
  • Grouped sections (Memory, GC, Performance, Diagnostics)
  • A short explanation of each non-obvious choice

Scope

  • Supported: IDE versions 222+ (JDK 17) and 243+ (JDK 21)
  • GC collectors: Generational ZGC, ZGC, G1GC, Shenandoah, Parallel, Serial
  • Tuning areas: Memory, code cache, metaspace, GC, compiler, strings, diagnostics
  • Not in scope: OS-level tuning, plugin configuration, IDE settings (non-JVM), or IDE versions below 222

Output Example

# JetBrains IDE VM Options
# IntelliJ IDEA 2024.3 (version 243, JDK 21)

# Memory
-Xms2g
-Xmx4g

# Garbage Collector: Generational ZGC
-XX:+UseZGC
-XX:+ZGenerational

# Performance
-XX:ReservedCodeCacheSize=512m
-XX:+UseStringDeduplication
-XX:SoftRefLRUPolicyMSPerMB=50

# Diagnostics
-XX:+HeapDumpOnOutOfMemoryError
-XX:CICompilerCount=2