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

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

【问题讨论】:

    标签: c++ windows


    【解决方案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。

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2010-11-29
          • 1970-01-01
          • 1970-01-01
          • 2016-06-26
          • 1970-01-01
          • 1970-01-01
          • 2019-02-21
          • 2023-04-04
          相关资源
          最近更新 更多