C++ 如何在windows平台上测量应用程序的运行时内存需求?

C++ 如何在windows平台上测量应用程序的运行时内存需求?,c++,windows,C++,Windows,如何衡量windows平台上应用程序的运行时内存需求?我假设您指的是特定时间点的内存使用,而不是它可能需要的内存量 您可以通过windows API获取有关进程消耗量的信息,例如GetProcessMemoryInfo。Windows以块的形式分配内存,因此它可能比只检查使用了多少内存或堆空间更准确 Perfmon.exe将监视进程的使用情况 运行perfmon.exe,右键单击添加计数器,为性能对象选择进程,然后选择虚拟字节、工作集和页面文件等内容。首先,“内存要求”的定义不是很好。启动时,e

如何衡量windows平台上应用程序的运行时内存需求?

我假设您指的是特定时间点的内存使用,而不是它可能需要的内存量

您可以通过windows API获取有关进程消耗量的信息,例如GetProcessMemoryInfo。Windows以块的形式分配内存,因此它可能比只检查使用了多少内存或堆空间更准确


Perfmon.exe将监视进程的使用情况

运行perfmon.exe,右键单击添加计数器,为性能对象选择进程,然后选择虚拟字节、工作集和页面文件等内容。

首先,“内存要求”的定义不是很好。启动时,executabel将链接到许多DLL。与第一个堆栈一起,这形成了您的初始过程。然后,您的进程可能会启动额外的线程、分配更多内存和/或内存映射一些文件

现在,Wwindows不会为所有这些需求提供真正的RAM。由于其他原因,许多DLL已经加载,因此您将共享该RAM。当出现软堆栈溢出时,会为堆栈分配额外的RAM。内存映射文件在这些页面出现故障时获得RAM分配

所以,一个重要的问题是你真正想要什么。你必须先回答这个问题