Fragmentation notices
Published 14 May 2018
This page applies to ANTS Memory Profiler 8.2 only.
Fragments are blocks of unused memory. On the small object heaps (Generation 0, 1 and 2), fragmentation isn't a problem, because the fragments are compacted during a garbage collection. However, the large object heap (LOH) isn't compacted for performance reasons, so the LOH can become fragmented.
To give an indication of whether fragmentation is causing a problem for your application, ANTS Memory Profiler looks at the following:
Depending on these ratios, an appropriate message is displayed:
- No problems with large object heap fragmentation are detected.
The total size of the LOH is less than 32MB, or the free space ratio is less than 0.1:1. - Fragmentation is restricting the size of objects that can be allocated.
The fragmentation ratio is less than 0.3:1, ie, the largest fragment is very small. - Fragmentation is affecting the size of the largest object that can be allocated.
The fragmentation ratio is less than 0.6:1, and greater than 0.3:1, ie, the largest fragment is fairly small. - Fragmentation may be causing .NET to reserve too much free memory.
The free space ratio is greater than 0.7:1, and there are more than three fragments larger than 64k.
ie most of your application's memory is free space, and there are several large fragments. - Fragmentation may be causing .NET to reserve too much free memory.
The free space ratio is less than 0.7:1, and greater than 0.4:1, and there are more than three fragments larger than 64k.
ie a large amount of your application's memory is free space, and there are several large fragments. - There are many large fragments; fragmentation may become an issue over time.
There are more than ten fragments larger than 64k.