dotMemory 2019.2 Help

Heap Fragmentation

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 the diagram header will open the Group by Generations view for all objects in the snapshot.

heap fragmentation 1
  1. Heap segment name.

  2. Number of heaps within a segment.
    Each bar on the diagram represents a certain heap.

  3. 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. Note that the total size may be slightly larger than the sum of pinned, used, and free: The total size also includes memory blocks used for alignment, padding, and other specific purposes.

  4. 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.

  5. 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 statement.

  6. Total size of all objects (excluding pinned objects) allocated in the heap segment.

  7. Total size of free memory in the heap segment.

Last modified: 10 December 2019