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

Posted

技术标签:

【中文标题】如何在 Windows 平台上测量应用程序的运行时内存需求?【英文标题】:How can I measure runtime memory requirements of an application on windows platform? 【发布时间】:2008-12-13 05:20:12 【问题描述】:

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

【参考方案2】:

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

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

See more details from MSDN

【讨论】:

【参考方案3】:

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

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

因此,重要的问题之一是您真正想要什么。你必须先回答这个问题。

【讨论】:

以上是关于如何在 Windows 平台上测量应用程序的运行时内存需求?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Linux/Windows 上测量 CPU 时间和挂钟时间?

如何在windows上运行QT平台插件

Windows 上程序的 CPU 使用率测量

.NET平台系列26:在 Windows 上安装 .NET Core/.NET5/.NET6

有没有办法在 Windows 上测量时间到微秒精度? [复制]

Windows平台上运行Tomcat