当前位置:  开发笔记 > 编程语言 > 正文

如何确定进程"虚拟大小"(WinXP)?

如何解决《如何确定进程"虚拟大小"(WinXP)?》经验,为你挑选了1个好方法。

我有一个需要大量内存的程序,一旦达到2GB虚拟地址空间就会崩溃.Sysinternals进程资源管理器将其显示为"虚拟大小"列.如何用C(或C++)代码确定这个"虚拟大小"?

好的,我必须查询"虚拟字节"的性能计数器.Perfmon在我的德语Win XP安装中显示查询字符串(或它的调用方式),例如'\ Process(firefox)\VirtuelleGröße'.

如何确定"当前进程"的查询字符串,是否有非本地化名称?



1> dalle..:

根据MSDN:内存性能信息 PROCESS_MEMORY_COUNTERS_EX.PrivateUsage与Windows XP中任务管理器中的VM大小相同.GetProcessMemoryInfo应该工作:

PROCESS_MEMORY_COUNTERS_EX pmcx = {};
pmcx.cb = sizeof(pmcx);
GetProcessMemoryInfo(GetCurrentProcess(),
    reinterpret_cast(&pmcx), pmcx.cb);

现在pmcx.PrivateUsage保存进程的VM Size.


虽然虚拟机大小也不是我正在寻找的MSDN页面,但你提到了我需要的东西:MEMORYSTATUSEX.ullTotalVirtual-MEMORYSTATUSEX.ullAvailVirtual
推荐阅读
个性2402852463
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有