Download JXRay Memory Analyzer





Zip file, all platforms
Compressed archive in ZIP format [373.6 KB]

What's new in version 1.9

  • Significantly improved performance (at least 30 per cent faster than before) and reduced memory consumption
  • UI improvements: most tables are now collapsible; very big tables are scrollable; bytes in byte[] arrays with human-readable contents are presented as chars, etc.
  • Heap scanning order has been changed so that the more meaningful roots such as statics are scanned first, WeakHashMaps and weak references are scanned in the end, etc.
  • New problem kind: sparse collections


What's new in version 1.8

  • Semi-interactive HTML presentation
  • More detailed output, including the "Where memory goes, by class" section
  • New problem kind: sparse object arrays
  • New problem kind: sparse primitive arrays


What's new in version 1.7

  • New problem kind: objects that are unreachable, but still in the finalization queue
  • New problem kind: misconfigured maximum heap size, that makes the HotSpot JVM use a less compact object format (wide pointers) leading to higher than necessary memory consumption
  • Better presentation of reference chains with high retained memory
  • For duplicate strings, bad collections etc. we now report "expensive fields" when problematic objects are pointed by multiple different reference chains ending with the same data field, like MyClassReferencedByMany.almostAlwaysEmptyHashMap
  • The percentage of various "bad" objects wrt. the total number of such objects is now reported. For example, how many (what percentage) of HashMap instances are empty, etc.
  • Better lookup of possible sources of garbage objects. That is, finding live reference chains leading to objects of type Foo that are most similar to the given group of unreachable Foo objects.
  • Several performance, scalability and accuracy improvements


What's new in version 1.6

  • Improved calculation and presentation of reference chains with high retained memory when such chains stem from multiple concurrent threads and local variables.
  • Number of referenced objects is reported in addition to retained memory for each reference chain
  • Improved performance, especially for the heap dumps that have many small objects and strings
  • The real JVM pointer size (4 or 8 bytes) and object header size (12 or 16 bytes) is calculated correctly regardless of the heap dump file size
  • Linked lists of arbitrary type, such as -> -> ... are presented in a compact form, like {}
  • Instances of StringBuilder and StringBuffer are now treated in the same way as Strings - their char[] buffer is handled as implementation details
  • Total number of threads in the dump is reported in addition to the total number of classes.


What's new in version 1.5

  • New problem detection: duplicate objects of any type
  • New problem detection: bad primitive arrays (size 0 and 1, empty (all zeroes), high number of trailing zeroes)
  • Better presentation: type of the last object(s) in every reference chain is now displayed
  • Some scalability issues fixed


Print Print | Sitemap