首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何以编程方式获取vmmap中显示的信息?

如何以编程方式获取vmmap中显示的信息?
EN

Stack Overflow用户
提问于 2013-05-02 16:17:40
回答 2查看 1.7K关注 0票数 3

任何看过Mark Russovich演讲“内存管理之谜”的人都知道,vmmap工具可以向您展示一些其他工具似乎很少知道的不符合进程限制的东西(在普通的32位窗口上是2GB的)。

我希望能够以编程方式监视我的实际总内存大小(与进程限制相关的内存大小),这样我至少可以在接近进程限制时记录正在发生的事情。有关于vmmap是如何做到这一点的公开信息吗?

..。还有,为什么这些信息很难得到??

我所知道的事情(AFAIK)并不能给你提供完整的情况:

  • *GetProcessMemoryInfo看起来只返回有关私有内存使用的信息
  • System.Diagnostics.Process.VirtualMemorySize64返回一个仍然与vmmap显示的总数不完全匹配的相当大的数字--实际上它不匹配vmmap中显示的任何内容:(
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-03 19:14:44

我使用依赖沃克查看vmmap.exeKernel32.dll导入了哪些Windows函数,并发现了以下可能相关的函数:

代码语言:javascript
复制
VirtualAlloc
VirtualAllocEx
VirtualFree
VirtualProtectEx
VirtualQueryEx

看看这些,看看你是否能找到vmmap在做什么。当然,任何其他动态(即通过LoadLibrary)进行的API调用都不会出现在依赖项遍历器中。它也是众所周知的,当处理侧被破坏的DLL。

票数 4
EN

Stack Overflow用户

发布于 2018-10-02 21:54:11

twpol/vmmap中有一个类似VMMap功能的开放源代码命令行实现,它成功地展示了SysInternals VMMap所做的有关进程的所有相同信息。

还请参阅这叉子,它实现了快速堆枚举,但我还没有亲自测试过这个。

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

https://stackoverflow.com/questions/16342952

复制
相关文章

相似问题

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