【问题标题】:.net memory usage reporting difference between task manager and windbg/sos.net 内存使用报告任务管理器和 windbg/sos 之间的差异
【发布时间】:2013-06-18 19:02:40
【问题描述】:

我有一个 .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)

【问题讨论】:

    标签: memory-management .net-3.5 windbg sos


    【解决方案1】:

    !address 只是向您显示地址空间使用情况。部分内存被调出。工作集(实际分页和使用的内存)要小得多。

    【讨论】:

    • 顺便说一下,R​​egionUsageIsVAD 不仅仅显示 GC 堆使用的内存。它向您展示了由 VirtualAlloc 分配的所有内容、文件映射以及我认为的其他一些内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-27
    • 1970-01-01
    • 2013-09-09
    • 2010-11-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多