如何在Windows平台上测量应用程序的运行时内存要求?

时间:2008-12-13 05:20:13

标签: c++ windows

如何在Windows平台上测量应用程序的运行时内存要求?

3 个答案:

答案 0 :(得分:2)

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

运行perfmon.exe,右键单击Add counters,为Performance Object选择Process,然后选择Virtual Bytes,Working Set和Page File等。

答案 1 :(得分:1)

我假设你的意思是在特定时间点使用内存,而不是它可能需要多少。

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

See more details from MSDN

答案 2 :(得分:0)

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

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

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