dotMemory 2023.3 Help

Heap Fragmentation

Use the Heap Fragmentation diagram 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 (refer to .NET Memory Management Concepts). Clicking the diagram header will open the Group by Generations view for all objects in the snapshot.

Heap fragmentation
  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, unpinned, and free: The total size also includes memory blocks used for alignment, padding, and other specific purposes.

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

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

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

Heap Fragmentation also lets you open two specific object sets:

Unreachable objects
Last modified: 05 September 2023