我的记忆在哪里?
我们一直在使用Vmmap,Processexplorer和MS Detours来分析程序中的内存使用情况。
我们的目标是验证程序的内存使用情况。
例如,我们知道我们有X MB的数据从磁盘加载到内存中,我们希望确保我们不会以某种方式使用2X MB的内存来执行此操作。
但是,我们注意到以下差异:
- 对于执行期间的特定点,Vmmap将报告~1310 MB的私有工作集,其中Processexplorer将报告~1304 MB(仅6 MB关闭,但哪一个“更”准确...)
- 使用MS Detours进行内存跟踪将报告从HeapAlloc调用分配的~948 MB,但Vmmap会说该程序正在使用~1143 MB的私有堆
我的问题是,
除非我们的跟踪代码中存在错误,并且内存由驱动程序映射,任何人都可以解释Vmmap和Processexplorer如何捕获比MS Detours挂钩更多的内存数据?
我们所关注的其他值得注意的电话是:
- VirtualAlloc
- ZwAllocateVirtualMemory
- RtlAllocateHeap
- MapViewOfSection
提前谢谢了!
没有找到相关结果
已邀请:
1 个回复
募磷