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.

Capturing snapshots

Much useful profiling information is available in the live views when the profiler is connected to a profiled application.

However, to use all analysis capabilities the profiler provides, a snapshot should be captured, i.e. the collected profiling data written to a file.

The snapshot files have extension .snapshot and are created in the snapshot directory.

To capture a performance snapshot, connect to the profiled application and use corresponding toolbar button:

Snapshots can also be captured automatically using:

Memory vs performance snapshots

Memory snapshots contain the memory state of the profiled application at the moment it was captured. It contains information about all loaded classes, about all existing objects, and about references between objects.

The heap is necessary for comprehensive memory profiling. If you need that information, capture memory snapshot:

Performance snapshot will contain all the same information as a memory snapshot except for the detail on individual objects in the heap.

Note: snapshots captured on exit are always performance snapshots due to a technical reason: capturing a memory snapshot requires to force garbage collection which is not possible when the CLR is being shut down.