From memory perspective, the work of your app is continuous allocation of memory for new objects and releasing the memory left from the objects that are no longer used by the app. Objects are allocated one after another in the so-called managed heap (for details on memory management in .NET, see the .NET Memory Management Concepts section).
- Memory snapshots
The instant image of the managed heap is called a memory snapshot. The snapshot contains information about all objects your app has allocated in memory on the moment of clicking the Get Snapshot button.
- Profiling session
A time interval during which your app works under profiling (you get memory snapshots during this time) is called a profiling session.
- Memory allocation
dotMemory can collect the memory allocation data which shows you how much memory was allocated during the session. This info lets you evaluate how your app performs in dynamics.
- Profiling workflow
Next in this chapter, we will guide you through the main profiling steps:
Controlling profiling: getting memory snapshots, detaching the profiler, and so on.
Alternatively, you can perform profiling using the dotMemory command-line profiler.