I have a memory dump. In this dump, I have a bunch with a pen fd00000. This is an excerpt from the output of the command !heap -s fd00000:
0: Heap 0fd00000
Flags 00001002 - HEAP_GROWABLE
Reserved memory in segments 80192 (k)
Commited memory in segments 56540 (k)
Virtual bytes (correction for large UCR) 60592 (k)
Free space 3884 (k) (572 blocks)
External fragmentation 6% (572 free blocks)
Virtual address fragmentation 6% (69 uncommited ranges)
Virtual blocks 124 - total 0 KBytes
Lock contention 23
Segments 1
You see that it shows the summary information as expected. But the conclusion !heap -stat -h 0fd00000
shows the following:
heap @ 0fd00000
group-by: TOTSIZE max-display: 20
size #blocks total ( %) (percent of total busy bytes)
19fa40 7a - c614280 (93.96)
62d30 4 - 18b4c0 (0.73)
d49 13d - 107365 (0.49)
This is all a hexadecimal number, so I see that the โtotal bytes busyโ exceeds 205 megabytes. So you see that it !heap -stells me that this heap has 80 MB / 60 MB of reserved / virtual memory, and it !heap -stattells me that this heap takes up 205 megabytes. . The failure is so huge. How is this possible? When I start !heap -s, I see several entries like this:
Virtual block: 293c0000 - 293c0000 (size 00000000)
Perhaps this is the reason?