任何看过Mark Russovich演讲“内存管理之谜”的人都知道,vmmap工具可以向您展示一些其他工具似乎很少知道的不符合进程限制的东西(在普通的32位窗口上是2GB的)。
我希望能够以编程方式监视我的实际总内存大小(与进程限制相关的内存大小),这样我至少可以在接近进程限制时记录正在发生的事情。有关于vmmap是如何做到这一点的公开信息吗?
..。还有,为什么这些信息很难得到??
我所知道的事情(AFAIK)并不能给你提供完整的情况:
发布于 2013-05-03 19:14:44
我使用依赖沃克查看vmmap.exe从Kernel32.dll导入了哪些Windows函数,并发现了以下可能相关的函数:
VirtualAlloc
VirtualAllocEx
VirtualFree
VirtualProtectEx
VirtualQueryEx看看这些,看看你是否能找到vmmap在做什么。当然,任何其他动态(即通过LoadLibrary)进行的API调用都不会出现在依赖项遍历器中。它也是众所周知的,当处理侧被破坏的DLL。
发布于 2018-10-02 21:54:11
在twpol/vmmap中有一个类似VMMap功能的开放源代码命令行实现,它成功地展示了SysInternals VMMap所做的有关进程的所有相同信息。
还请参阅这叉子,它实现了快速堆枚举,但我还没有亲自测试过这个。
https://stackoverflow.com/questions/16342952
复制相似问题