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 fixed block.
- 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 object used by runtime to handle static references.