首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我的记忆到哪里去了?

我的记忆到哪里去了?
EN

Stack Overflow用户
提问于 2011-02-23 03:08:05
回答 1查看 560关注 0票数 1

我们一直在使用Vmmap、Processexplorer和MS Detour来分析程序中的内存使用情况。我们的目标是验证程序的内存使用情况。例如,我们知道我们有X MB的数据从磁盘加载到内存中,我们希望确保我们不会以某种方式使用2X MB的内存来执行此操作。

然而,我们注意到了以下差异:-对于执行过程中的特定时间点,Vmmap将报告约1310 6MB的私有工作集,其中Processexplorer将报告约1304 6MB(仅关闭6MB,但哪个更准确...)- MS Detour的内存跟踪将报告从HeapAlloc调用分配的约948 6MB,但Vmmap将显示程序正在使用约1143MB的私有堆

我的问题是,除了跟踪代码中的错误,以及驱动程序映射的内存之外,有人能解释一下Vmmap和Processexplorer如何捕获比我们的MS Detour钩子更多的内存数据吗?

我们连接的其他值得注意的调用是:- VirtualAlloc - ZwAllocateVirtualMemory - RtlAllocateHeap - MapViewOfSection

首先要感谢大家!

EN

回答 1

Stack Overflow用户

发布于 2011-04-04 04:02:43

它会建议在特定时间获取内存转储,并在windbg中打开它并执行!address -summary。这个命令应该会告诉你每个内存区域的状态。如果它是一个.NET应用程序,那么你可能想深入了解一下GC堆。您可以参考文章http://vpnchoudhary.blogspot.com/2011/03/out-of-memory-exception-simple.html以了解更多详细信息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5082677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档