首页 / 知识
关于winapi:如何找出应用程序占用了多少地址空间并将其报告给用户?
2023-04-17 01:15:00

How can I find out how much of address space the application is consuming and report this to user?我正在为一个应用程序编写内存管理器,作为二十多个编码器团队的一部分。 我们的内存配额用完了,我们需要能够看到发生了什么,因为我们似乎只使用了大约700Mb。 我需要能够报告一切进展-碎片等等。有什么想法吗? 您可以为此使用现有的内存调试工具,我发现Memory Validator 1非常有用,它可以跟踪API级别(堆,新...)和OS级别(虚拟内存)分配并显示虚拟内存映射。 我还发现非常有用的另一个选项是能够基于VirtualQuery函数转储整个虚拟空间的地图。我的代码如下所示:
您还可以从工具帮助API中找到有关使用Heap32ListFirst / Heap32ListNext的进程中的堆以及有关使用Module32First / Module32Next的已加载模块的信息。 "工具帮助"起源于Windows 9x。 Windows NT上原始的过程信息API是PSAPI,它提供的功能与工具帮助部分(但不完全)重叠。 我们的(巨大的)应用程序(一个Win32游戏)最近开始引发"配额不足"异常,我负责找出所有内存的去向。这不是一件微不足道的工作-这个问题和这个问题是我第一次尝试找出答案。堆行为是意外的,到目前为止,准确跟踪已使用的配额和可用的配额是不可能的。实际上,它并不是特别有用的信息-" quota"和"放在某处的东西"是微妙而令人讨厌的不同概念。尽管枚举堆和模块也很方便,但可接受的答案就可以了。我使用了来自MS的DebugDiag来查看这种情况的真正恐怖之处,并了解真正全面跟踪所有内容的难度。 |
最新内容
相关内容
linux命令删除用户组?
linux命令删除用户组?,管理,密码,系统,用户组,用户,概念,命令,文件,管理员,工作组,Linux命令之用户组管理1、查看/etc/group文件,只存在名称为mlinux中用户创建命令?
linux中用户创建命令?,密码,系统,用户,软件,命令,联系方式,管理,信息,用户名,新用户,linux怎么添加用户1、打开xshell软件,远程访问您的服务器linux清理内存命令行?
linux清理内存命令行?,策略,数据,系统,名称,不了,管理,情况,工作,一致,时间,linux如何清理内存Linux虽然是会自动释放内存的,可是有的时候却。linux注销命令用户?
linux注销命令用户?,系统,服务,密码,地址,工作,命令,状态,工具,信息,基础,linux注销用户命令1、shutdown是一个用来安全关闭或重启Linux系统的linux命令行创建用户?
linux命令行创建用户?,系统,密码,软件,新增,用户,联系方式,管理,用户名,命令,账号,Linux中如何创建用户和用户组Linux如何创建用户?打开xshelllinux系统用户命令?
linux系统用户命令?,系统,工作,地址,信息,管理,命令,目录,时间,电脑,名称,请问linux操作系统的命令是什么linux命令是对Linux系统进行管理的命linux分析内存命令?
linux分析内存命令?,情况,系统,信息,分析,命令,地址,内存,工具,下来,数据,linux查看CPU核数和内存大小命令?方法二:free命令法 free命令主要用linux的内存查看命令?
linux的内存查看命令?,系统,情况,信息,数据,工具,命令,内存,第一,环境,电脑,查看linux的cpu和内存要查看内存使用情况,可以使用free命令。Freelinux命令行查内存?
linux命令行查内存?,系统,情况,信息,状态,工具,内存,电脑,分析,数据,命令,怎么查看linux的内存/proc/meminfo 命令来查看系统的内存使用情况。linux看剩余内存命令?
linux看剩余内存命令?,系统,情况,工具,信息,分析,状态,实时,命令,内存,总量,Linux系统中查看执行中的进程占用内存量的方法1、(1)top top命令linux命令所有用户?
linux命令所有用户?,系统,密码,信息,情况,名称,命令,用户,时间,地址,位置,如何查询linux系统中所有用户的用户名和密码首先进入到linux桌面,在linux命令进入用户?
linux命令进入用户?,系统,密码,用户,地址,信息,软件,命令,用户名,联系方式,电脑,linux进入第一次启动+怎么样创建用户?1、进入Linux系统,登陆管