Fully featured low overhead profiler for Java EE and Java SE platforms.
Performance monitoring and profiling of Jenkins, TeamCity, Gradle, Maven, Ant, JUnit and TestNG.
Easy to use performance and memory profiler for .NET framework.

Objects view

The objects view allows you to comprehensively examine objects in a memory snapshot.

When a memory snapshot opens, the Memory tab is shown automatically and represents all objects.

You can also open it for a subset of objects:

  • Memory | Selected Objects (F4) works in any memory view if selection represents live objects.
  • Memory | Instances by Class... (Ctrl+N) opens all instances of a class by its name.
  • Memory | Strings by Pattern... (Ctrl+F) opens instances of strings, char arrays or byte arrays that match given text pattern.
  • Memory | Predefined Set... opens objects that belong to one of sets specified in Settings | Sets of Objects....

There are different views:

  • Objects by category:

    Class list - examine how memory is distributed among instances of different classes

    Class and package - similar to the Class list, but classes are grouped by package

    Class loaders - distribute objects by class loader

    Web applications - distribute objects by web application

    Generations - distribute objects by time of their creation

    Reachability - shows objects distributed according to how/whether they are reachable from GC roots

    Shallow size - shows objects distributed according to their shallow size range

  • Individual objects:

    Object explorer - browse individual objects

    Biggest objects - find individual objects that retain most of memory

  • Allocation recording results:

    Allocations - explore methods where objects were created

    Object ages - distribute objects by how long they exist

  • Other views (available as slave views only):

    Merged paths - examine how objects are retained

    Class hierarchy - shows super and derived classes