Controlling Profiling Session
To control the profiling process, use the following buttons on the top of the page :
- Force GC
Forces full garbage collection in the application.
- Kill Process
Kills the currently selected process of the application.
- Kill All Processes*
Kills all processes of the application.
Detaches the profiler from the application but keeps the application running.
- Collect Allocations
Enables and disables collecting memory allocation data.
Use this option to reduce the profiler overhead and collect allocation data only when it is needed (for example, only when working with app functionality you want to profile). Note that memory traffic data will be incomplete in case you turn off collecting allocations at least once during the profiling. Learn more in Analyzing Memory Traffic.
- Get Snapshot by Condition
Opens the Get Snapshot by Condition window. Using this window, you can configure dotMemory to automatically get snapshots when a particular condition takes place. Learn more in Getting Snapshots by Condition.
- Get Snapshot
Gets a memory snapshot for the process selected in the list of processes * in the Analysis Path.
During the session, the profiler runs in the background. At any point, you can grab a memory snapshot by clicking Get Snapshot. This will capture the data and add the snapshot to the collected snapshot area . Getting a snapshot does not interrupt the profiling process, allowing you to get another snapshot (which, for example, can be compared with the first one later).
Timeline shows how your app consumes memory in real time. The timeline consists of four charts showing instant sizes of Gen0, Gen1, Gen2 heaps and Large Object Heap. In addition, the timeline can show the instant size of unmanaged memory. To add this chart, turn on the Show unmanaged memory checkbox in .
After you capture enough data, you can proceed to analyzing profiling results.
Showing Profiling Controls in a Separate Window
You can detach the profiling controls to a separate Profiling Controller window by clicking the button in . The controller window is always shown on top of other windows, which is especially helpful on desktops with only one monitor.