open a .hprof heap dump in a JetBrains IDE
A container is killed for memory overnight and leaves an .hprof file behind. It is a few gigabytes of objects on a laptop, and the class that filled the heap is somewhere inside it.
installing and opening
Heap Dump Lens installs from the JetBrains Marketplace into any JetBrains IDE on 2024.2 or later, Community editions included, and the IDE restarts once. Put the dump where the IDE can see it and double click it. The tab is Heap Dump Lens, for a .hprof file and for a file whose name says nothing, since what the reader looks at is the hprof bytes at the head of the file. Gzipped dumps are opened as they came: the .hprof.gz is inflated into a work directory, with progress, and the copy is deleted with the tab. A dump far beyond the IDE's large file limit opens the same way.
Often the process was killed before the JVM finished writing, and what reaches you is a partial dump. The tab reports that file as truncated and names the byte it ends at and the record it ends in, so the state of the file is legible at the top of the tab.

what comes up
The class histogram comes up first. One row per class under its real name, its instance count, and the shallow bytes those instances hold. Either column sorts and the filter takes a class name. Beside the histogram are the dump's facts: object count, loaded classes, GC roots, format and id width, total heap bytes. The index is written to a work directory on disk, so what the IDE keeps in memory scales with the number of classes and strings, not with the total object count. That is what holds our own 2.6 GB dump of twenty million objects to about 12.5 seconds of indexing under a 512 MB cap.
the thread dump and the GC log
The same incident usually leaves two more files beside the dump. A .tdump file opens parsed, each thread under its state with its daemon flag and its frames, and saved jstack output that carries no such extension comes in through Tools, Open Thread Dump (Heap Dump Lens). Unified -Xlog:gc* output has an entry of its own in the same menu, Open GC Log (Heap Dump Lens), and arrives as a table of pause events with the heap before and after each pause, its duration, the longest of them and the total.
free, and what Pro adds
All of the above is free, and the free tier does not expire. Pro computes the dominator tree across the whole object graph, so the Retained tab can rank the top 500 retainers by what each one would free, retained and shallow bytes side by side. On that same 2.6 GB dump it pulled thirty million references and finished the dominators in under half a minute. Pro also writes the histogram, a filter's matches or the retainer ranking out to CSV, while the histogram on screen and copying rows out of it stay free. Pro is a subscription with a 30-day trial, priced on the product page.
where it stops
The plugin reads a dump and never rewrites it. It does not attach to a running process, and a flight recording is a different kind of file that it leaves alone. A file that is no heap dump at all names the reason it is not one, with no stack trace to decipher. Thread dump parsing follows HotSpot output, and a GC line the parser does not recognize stays out of the totals. It produces no leak verdict of its own, so the dominator ranking is what you work from.