0

这个问题与我之前的问题有关

故事情节:如果您查看任务管理器VMSize ,我有一个消耗大量内存的 .NET 应用程序。我试图找出消耗这么多内存的原因。

您在下图中看到 VM 大小为2.46 GB 替代文字

好的,现在我正在查看 .net 性能计数器

替代文字 http://s006.radikal.ru/i213/1003/30/dd42433cd12d.jpg

提交保留的字节加起来只有1,2 GB

现在让我们看看windb sos调试。让我们运行 eeheap -gc 命令

替代文字 http://s001.radikal.ru/i194/1003/e8/9da33856ed58.jpg

GC 使用的堆大小仅为340 MB。剩余的已用内存在哪里?我需要找出为什么 TaskManager 中的 WM 大小为 2.4 GB

更新

--------------------------------------
Total LoaderHeap size: 0x74c000(7651328)bytes
=======================================
Number of GC Heaps: 1
generation 0 starts at 0x0000000081b89d00
generation 1 starts at 0x0000000081a83b20
generation 2 starts at 0x0000000001281000
ephemeral segment allocation context: none
         segment            begin         allocated             size
0000000001280000 0000000001281000  00000000057416a0 0x00000000044c06a0(72091296)
000000004ad00000 000000004ad01000  00000000513c1cc8 0x00000000066c0cc8(107744456)
000000007fff0000 000000007fff1000  000000008994e310 0x000000000995d310(160813840)
Large object heap starts at 0x0000000011281000
         segment            begin         allocated             size
0000000011280000 0000000011281000  00000000112c67d0 0x00000000000457d0(284624)
Total Size        0x14523e48(340934216)
------------------------------
GC Heap Size        0x14523e48(340934216)
4

1 回答 1

1

Tess 发表了一篇关于其他内存使用来源的文章。检查https://blogs.msdn.com/tess/archive/2006/02/15/532804.aspx

于 2010-03-25T08:56:24.037 回答