【发布时间】:2014-08-10 12:35:41
【问题描述】:
我正在尝试理解 !heap -s 命令的输出。我知道每个进程都有一个默认堆,所有分配都在其中完成。应用程序可以创建自己的堆。此输出中的每一行是否显示不同的堆?如果是这样,这是否意味着应用程序创建了这么多堆,或者窗口也可以创建多个堆?
0:000> !heap -s
Heap Flags Reserv Commit Virt Free List UCR Virt Lock Fast
(k) (k) (k) (k) length blocks cont. heap
-------------------------------------------------------------------------------------
Virtual block: 000000000a790000 - 000000000a790000 (size 0000000000000000)
Virtual block: 000000000ac50000 - 000000000ac50000 (size 0000000000000000)
0000000000430000 00000002 48256 31976 48256 558 512 7 2 5 LFH
0000000000010000 00008000 64 4 64 1 1 1 0 0
0000000000680000 00001002 1088 368 1088 9 5 2 0 0 LFH
00000000005e0000 00041002 512 8 512 3 1 1 0 0
0000000000380000 00001002 1088 408 1088 5 5 2 0 0 LFH
0000000000840000 00041002 512 16 512 0 1 1 0 0
0000000000d00000 00001002 512 340 512 3 8 1 0 0 LFH
00000000003a0000 00041002 512 8 512 3 1 1 0 0
000000000c3d0000 00001002 512 344 512 3 22 1 0 0 LFH
000000000c5d0000 00001002 512 336 512 5 10 1 0 0 LFH
0000000000c80000 00001002 64 8 64 3 1 1 0 0
000000000c7d0000 00001002 64 8 64 3 1 1 0 0
000000000b770000 00011002 512 32 512 19 7 1 0 0
0000000000b70000 00001002 1088 368 1088 8 9 2 0 0 LFH
000000000d980000 00001002 512 8 512 3 2 1 0 0
000000000db60000 00001002 64448 37556 64448 34615 196 27 0 0 LFH
External fragmentation 92 % (196 free blocks)
000000000f4b0000 00001002 3136 1928 3136 1198 39 3 0 0 LFH
External fragmentation 62 % (39 free blocks)
0000000015780000 00001002 64064 41784 64064 20339 308 16 0 8 LFH
External fragmentation 48 % (308 free blocks)
000000000e360000 00001002 512 8 512 3 1 1 0 0
-------------------------------------------------------------------------------------
【问题讨论】:
标签: c++ windows memory-management windbg heap-memory