I’ve a dump file of a process I’m running (trying to find a memory leak)
One thing I’ve noticed is that when I dump the bigger objects via !do windbg tells me that they are GC generation 3 ??
All of these are byte arrays so when I look at all the byte arrays in the dump I can see GC generations 0, 1, 2 & 3.
Could someone explain whats going on here as I thought there was only 3 generations of GC.
> 0:000> !do 0x0000000011b47450
Name: System.Byte[]
MethodTable: 000007fef7d2e798
EEClass: 000007fef7932670
Size: 131096(0x20018) bytes
GC Generation: 3
Array: Rank 1, Number of elements 131072, Type Byte
Element Type: System.Byte
Fields:
None
The .NET Framework has a fourth heap (“generation”) specifically for large objects, called — appropriately enough — the Large Object Heap. Objects larger than 85,000 bytes are allocated onto that heap.
For reference: http://msdn.microsoft.com/en-us/magazine/cc163833.aspx