.net - 高提交内存但堆大小小

标签 .net debugging memory memory-leaks windbg

据报道,我的一个应用程序使用了 5 GB 内存,当我转储进程并在 Windbg 中进行分析时,我可以看到总提交大小为 5 GB,如报告的那样,但总托管堆尺寸仅为 1.6 G。

问题:当堆大小只有几G时,什么会导致提交大小如此之大,我可以看到MEM_COMMIT大小几乎全部被PAGE_READWRITE部分使用,可能是内存碎片吗?

状态大小 MEM_COMMIT 5.653 GB MEM_RESERVE 2.597 GB

GC 堆大小:大小:0x67cefd88 (1741618568) 字节。

最佳答案

是的,托管堆中未考虑的提交大小可能来自非托管堆中的碎片。命令!heap -s将在windbg中显示它们。 您也可以使用VMMap快速排除其他类型的内存分配数据。

关于.net - 高提交内存但堆大小小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14642962/

相关文章:

memory - goroutines 内存不足 UPD : go error handling

java apache poi 内存清空

.net - 是否可以使用 WCF 服务而不是 WCF 数据服务来实现服务器端分页

visual-studio - 如何获取 XmlDiffPatch 库的源代码?

c++ - 使用 malloc 分配比现有内存更多的内存

ios - 我可以使用命令重新加载我的 React Native 应用程序吗?

debugging - 调试应用程序时,asp.net 核心似乎卡住

javascript - Base 64 转字符串 Javascript

c# - 从 .NET 中的同一对话框中选择文件或文件夹

c# - 意外类型 - 序列化异常