DOWNLOAD JXRAY MEMORY ANALYZER
IMPORTANT! BY DOWNLOADING THE SOFTWARE BELOW, YOU AGREE TO BE BOUND BY THE TERMS OF THE END USER LICENSE
SPECIAL OFFER TO OUR USERS
We strive to make JXRay better, and we are eager to see more use cases. If you have a real-life heap dump that you are willing to share,
and JXRay currently doesn't detect some problem in it (or doesn't do it well), please compress and send that dump to us, with a brief explanation of the problem. Our e-mail is firstname.lastname@example.org. In
exchange, you will receive one personal JXRay license FOR FREE!
What's new in version 2.6
Added detection of duplicate object arrays and array-based lists (such as
java.util.ArrayList or java.util.Vector)
Added detection of WeakHashMaps with references from values back to keys
Performance and scalability improvements
What's new in version 2.5
Added Recommendation Engine, that recommends changes to the code to address concrete
problems detected in the dump (currently only for duplicate strings and bad collections)
Performance improvements in some corner cases
What's new in version 2.4
Added detection of memory leaks (leak-like object patterns)
Improved presentation of the object tree and some other parts of the
If a thread throwing OutOfMemoryError is detected, its stack trace is printed in a
separate section, along with local variables for faster diagnostics of the root cause
Performance improvements in some corner cases, e.g. when the dump contains extremely
long (over 1GB) Strings, StringBuffers etc.
At run time, the tool now detects when it's short of memory (runs GC very
frequently) and warns the user.
Each report section now has a "What's this" link to jxray online documentation.
What's new in version 2.3
- Direct retained memory is reported for each class in the "Where memory goes, by class" report section. This is useful for classes like java.net.URI that "exclusively own" objects that they reference, and these objects can take a lot
more memory than their owners.
-extra_classes flag, to allow the user to obtain information for class(es) that are normally not reported because they use too little memory
- We now properly handle heap dumps generated by JDK 9/10 JVMs. The tool itself can also run on JDK 9/10
- Added a new problem kind: list with too many null elements
- The generated HTML files are smaller now. Objects in samples are printed in a more compact form to both improve readability and reduce report size
- Numerous other improvements to make the report more informative and faster/easier to read
What's new in version 2.2
- Off-heap (native) memory used by
java.nio.DirectByteBuffer objects is now reported
- Improved random samples of collections: contents of contained objects are printed where possible, capacity is printed for
array-based collections, etc.
- Improved "ergonomics": memory overhead is highlighted by different colors depending on the value; if a dump was generated as a result of
OutOfMemoryError, the respective thread is
printed in the Top-Level Stats section, etc.
- Added support for some more collection types
What's new in version 2.1
- In the "where memory goes, by class" there are now random samples of objects, for each class and reference chain
- Fixed some issues with parsing and analyzing Android heap dumps
- Added new problem kind: primitive arrays where in each element the upper half (high bits), such as two high bytes in int, are zero
- Improved performance and memory consumption for big heap dumps