The Heap Fragmentation diagram can be used to evaluate the fragmentation of the managed heap segments: Generation 1, 2, and large object heap. The latter is of main interest here as the large object heap fragmentation can be a serious issue (see .NET Memory Management Concepts). Clicking on the diagram header will open the Group by Generations view for all objects in the snapshot.
- Heap segment name.
- Number of heaps within a segment.
Each bar on the diagram represents a certain heap.
- Total heap segment size defined by GC.
The length of bars on the diagram corresponds to the total size of certain heaps within a segment.
- Fragmentation level. The 0% fragmentation means that all free memory is located in a single block. Learn about how the fragmentation is calculated in this article.
- Total size of pinned objects.
Pinned objects are prohibited from moving within the heap. Typically, such objects are used by some unmanaged code or may be a result of using the
- Total size of all objects (excluding pinned and CLR auxiliary objects) allocated in the heap segment.
- Total size of free memory in the heap segment.
- Total size of auxiliary CLR objects. For example, these could be arrays of
objectused by runtime to handle static references.