首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何计算Windows上的空闲地址空间?

如何计算Windows上的空闲地址空间?
EN

Stack Overflow用户
提问于 2009-07-13 14:11:13
回答 3查看 610关注 0票数 1

如何计算我的进程在Windows上的可用虚拟地址空间量?

我的应用程序需要限制使用的地址空间量。因此,我需要估计我已经消耗了多少内存,以及还剩下多少虚拟内存。如果我只剩下几百兆字节的地址空间,我的进程就开始使用定制的分页系统,以避免在内存中加载太多数据。

更重要的是:这需要按进程计算,因为我只关心我的进程,我仍然使用Win32。

我已经尝试过VirtualQuery(),但它没有返回剩余的总地址空间。

谢谢。

EN

回答 3

Stack Overflow用户

发布于 2009-07-13 14:18:09

您可能需要查看GetProcessMemoryInfoGetProcessWorkingSetSizeEx,以确定您正在使用多少内存。

票数 1
EN

Stack Overflow用户

发布于 2010-09-25 00:56:34

使用Win32接口中的GlobalMemoryStatusEx函数。您感兴趣的字段是ullAvailVirtual,它是您的进程尚未保留或提交的虚拟空间的字节数。

票数 1
EN

Stack Overflow用户

发布于 2009-07-13 14:24:48

如果你使用的是c++,你可以使用定制的内存分配器。但是,您可能不需要跟踪每个内存分配,只需要跟踪程序的大部分内存密集型部分。

一种选择是在启动时分配内存块,并使用LRU缓存重用分配的内存块,只在内存中保留最近使用的数据。您的程序也将更快(在运行时不需要分配),并且您将防止由于分配/释放内存而导致的内存碎片。

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

https://stackoverflow.com/questions/1119669

复制
相关文章

相似问题

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