Product specification
JHeapo
A streaming, out-of-core Java heap-dump analyzer. Point it at an HPROF dump and see where the memory went — on heaps far larger than the machine's RAM.
At a glance
The essentials, in one place.
| Category | Java heap-dump analyzer |
|---|---|
| Analysis model | Streaming and out-of-core — indexes are built on disk and memory-mapped, so analysis is bounded by disk, not RAM |
| Input | A standard HPROF binary heap dump (.hprof) |
| Output | A local web UI, streamed live over Server-Sent Events as each phase completes |
| Heap size handled | Heaps far larger than the machine's memory; the JVM running JHeapo needs only a modest -Xmx |
| Platforms | Linux x64 · macOS x64 · Windows x64 |
| Runtime | Self-contained — each build bundles its own JDK 25 runtime image |
| Install | None. Unpack the archive and run — no installer, no admin prompt, nothing registered with the OS |
| Runtime dependencies | Zero |
| Disk footprint | Index files are written beside the dump and rebuilt each run (roughly 2.2 GB beside a 1.6 GB dump) |
| AI assist | Optional "Ask Claude" panel — active when an Anthropic API key is present, hidden otherwise |
| Licensing | Commercial, delivered as a private release build — contact us |
What it analyzes
Every view streams into the UI as its results become ready.
Built to scale
Crack open your biggest production dump without provisioning a machine large enough to hold it.
Finds the waste
Duplicate strings, under-filled collections, boxed numbers and empty arrays — the fat that quietly fills a heap.
Leak suspects
The biggest retainers, ranked — the first objects to check when memory won't let go.
Retained & dominator
Retained size and the dominator tree show what actually frees when you cut a reference.
Entanglement
A new lens on retention — how entangled your objects are, as a proxy for domain complexity.
Object-model complexity
A number on the sprawl and depth of the types filling your heap.
Requirements & platforms
A packaged build is self-contained; you only need the toolchain if you build from source.
| To run a packaged build | Nothing to install — the archive carries its own JDK 25 runtime |
|---|---|
| Supported OS | Linux x64, macOS x64, Windows x64 |
| Heap dump | Any standard HPROF dump — from jcmd <pid> GC.heap_dump, jmap -dump, or -XX:+HeapDumpOnOutOfMemoryError |
| Disk space | Free space on the dump's volume for the index files (about 1.4× the dump size) |
| To build from source | JDK 25, Maven 3.9+, and node on the PATH (the build gates on the UI's own JavaScript) |
| Persistent API key | Key storage uses the macOS Keychain; on Linux/Windows supply the key per run instead |
Running it
Point it at a dump; it opens a browser and starts streaming results.
Packaged build
From the jar
Common options
--direct-buffers | Also run the direct-buffer analysis pass (off by default) |
|---|---|
-Djheapo.port=9000 | Port to listen on (default 7070) |
-Djheapo.url=http://0.0.0.0:9000 | Bind interface and the link shown — e.g. to reach the UI from another machine |
-Djheapo.claude.key=sk-ant-… | Use an Anthropic key for this run only (not stored); enables the Ask Claude panel |
-Djheapo.claude.stub=true | Try the Ask Claude panel offline with canned replies — no key, no network |
Data handling
Runs on your machine
The dump is analyzed locally and served to a browser on the same host. Nothing is uploaded.
AI is opt-in
The Ask Claude panel only appears when you supply a key, and an offline stub mode makes no network calls at all.
Share dumps safely
Pair with JScrub to pseudonymize a dump before handing it to a third party for analysis.
Get a build
JHeapo ships as a private, per-platform release build. Tell us your platform and we'll get you set up.
← Back to JHeapo overview