我有一个.net应用程序。在任务管理器中,它在内存(私有工作集)列中显示249 MB的使用情况。然后我附上windb并运行!address -summary命令。以下是其结果。它在.NET堆(RegionUsageIsVAD)中显示的内存使用量为568 MB。 这两个值应该相同吗?任何人都可以解释为什么两个值之间有这么大差异?
--------------------使用摘要------------------------- -
TotSize(KB)Pct(Tots)Pct(Busy)用法
22b7c000(568816):27.12%64.42%:RegionUsageIsVAD
4a1b3000(1214156):57.90%00.00%:RegionUsageFree
e8e6000(238488):11.37%27.01%:RegionUsageImage
1c00000(28672):01.37%03.25%:RegionUsageStack
0(0):00.00%00.00%:RegionUsageTeb
2dda000(46952):02.24%05.32%:RegionUsageHeap
0(0):00.00%00.00%:RegionUsagePageHeap
1000(4):00.00%00.00%:RegionUsagePeb
0(0):00.00%00.00%:RegionUsageProcessParametrs
0(0):00.00%00.00%:RegionUsageEnvironmentBlock
总数:7fff0000(2097088 KB)忙:35e3d000(882932 KB)
--------------------类型摘要------------------------- -
TotSize(KB)Pct(Tots)用法
4a1b3000(1214156):57.90%:
11ce9000(291748):13.91%:MEM_IMAGE
9fe9000(163748):07.81%:MEM_MAPPED
1a16b000(427436):20.38%:MEM_PRIVATE
--------------------状态摘要------------------------- -
TotSize(KB)Pct(Tots)用法
2e2a0000(756352):36.07%:MEM_COMMIT
4a1b3000(1214156):57.90%:MEM_FREE
7b9d000(126580):06.04%:MEM_RESERVE
最大的自由区域:基数32ce9000 - 大小15377000(347612 KB)
答案 0 :(得分:2)
!地址只显示地址空间使用情况。一些内存被分页。工作集(实际上内存和正在使用的内存)要小得多。