JVMind is an AI-powered conversational assistant for Java Virtual Machine (JVM) performance troubleshooting. Upload your GC logs or thread dumps, ask questions in natural language, and get professional diagnostic reports with actionable recommendations.
Instead of manually parsing thousands of log lines or hunting for deadlocks in a massive thread dump, just upload your file and let the AI do the heavy lifting — it will analyze the data step-by-step and explain what's happening in plain English.
Upload GC logs and get automatic statistics — throughput, pause times, collector identification, top slowest GC events, and visualized charts.
Upload jstack output to detect deadlocks, identify lock contention hotspots, and generate flame graphs of stack traces.
Ask questions about your analysis results in natural language. The AI uses ReAct reasoning to break down complex problems step-by-step.
Heap usage curves, pause time distributions, and interactive flame graphs — all generated automatically.
JVMind remembers facts about your environment across conversations, giving you more contextual answers over time.
Works with OpenAI, DeepSeek, Qwen, Kimi — or any OpenAI-compatible API.
Before uploading, make sure your JVM is configured to output GC logs:
| JDK 8 | -XX:+PrintGCDetails -Xloggc:gc.log |
| JDK 9+ | -Xlog:gc*:file=gc.log |
💡 Tip: For the best AI diagnosis, upload the GC log first, then ask questions in the chat. The AI will automatically reference the already-uploaded analysis data.
Use the jstack command for classic text format (all JDK versions):
jstack -l <pid> > threads.txt
Or use jcmd for the JSON format (JDK 21+, includes virtual thread metadata):
jcmd <pid> Thread.dump_to_file -format=json threads.json
Or capture directly in JVMind using the jstack tab's built-in capture tool (requires the agent to be running on your JVM host).
VThread-<container>#<tid> for grouping.Click the ⚙️ button in the sidebar to open the configuration dialog:
| API Key | Your API key for the LLM provider |
| Base URL | API endpoint (customize for self-hosted or third-party providers) |
| Model | Which model to use (e.g., gpt-4o, deepseek-chat) |
| Temperature | Controls response creativity: lower = more deterministic, higher = more creative |
| Max Iterations | Maximum ReAct reasoning steps the AI can take (higher = more thorough, but slower) |
| System Prompt | Extra instructions to guide the AI's behavior |
After saving, click "Test Connection" to verify your settings work before starting a conversation.
JVMind includes presets for popular LLM providers:
JVMind uses the ReAct (Reasoning + Acting) framework. When you ask a question, the AI:
The entire thought process is visible in the conversation — you can see exactly how the AI reached its conclusions.
The sidebar Memory panel lets you save facts the AI should remember, such as:
The AI automatically references saved facts in future conversations for more contextual answers.
| JVM Version | GC Collector | Support |
|---|---|---|
| JDK 8 | Serial, Parallel, CMS, G1 | ✓ |
| JDK 9+ | G1 | ✓ |
| JDK 9+ | Parallel / Serial | ✓ |
| JDK 12+ | Shenandoah | ✓ |
| JDK 11 — JDK 25 | ZGC (incl. Generational) | ✓ |
JVMind supports two thread dump formats, auto-detected on upload:
jstack -l) — the classic format, works on all JDK versions. Extensions: .txt, .log, .tdump, .jstack.jcmd Thread.dump_to_file -format=json) — introduced in JDK 21, the only way to see virtual thread details (JEP 444). Extension: .json. Adds statistics for virtual threads, terminated threads, and thread containers (executor / ForkJoinPool grouping).Files must be UTF-8 encoded (or plain ASCII).
JVMind correctly handles ZGC's multi-phase pause structure by accumulating pause times from all phases of the same GC cycle. It also recognizes both the older Garbage Collection (System.gc()) format and the JDK 25+ Major Collection (System.gc()) format for detecting explicit Full GC triggered by System.gc().
The analysis results (statistics, not the raw file) are sent to the LLM you configured for diagnosis. The raw file stays on the JVMind server.
Yes — JVMind works with any Java application regardless of the application server or framework. It only needs the GC log or thread dump.
File size limits: Loading.... Your current plan's limit is shown in the app sidebar.
The AI provides professional-level analysis comparable to an experienced performance engineer. However, always verify critical recommendations before applying them to production, especially if your log doesn't contain full context.
You can upload multiple GC log files or thread dumps to a single conversation. Each will appear in the analysis panel's history, and the AI can compare them.
Yes — upload them individually or concatenate them into one file before uploading.