【问题标题】:VMMap reports ~100 GB allocationsVMMap 报告 ~100 GB 分配
【发布时间】:2020-11-15 22:06:03
【问题描述】:

我有一个应用程序,我怕有内存泄漏。 使用 VMMAP 对其进行调查,我发现大部分分配都是保留内存。它不应该影响性能......? 问题仍然是 - 保留这么多内存的原因可能是什么(我该如何调查它?)它会影响某个阶段的性能吗?

【问题讨论】:

    标签: c++ memory-leaks virtual vmmap


    【解决方案1】:

    此 Microsoft 文档页面可以解释保留内存的含义 - https://docs.microsoft.com/en-us/windows/win32/memory/page-state

    您可以安全地保留大量内存,而不会出现任何问题(在 x64 构建中,这看起来适合您)

    我成功为下一个代码预留了 30000 GB 内存

    #include "Windows.h"
    
    int main()
    {
        static const size_t allocationSize = 512 * 1024 * 1024;
        size_t allocated = 0;
        while (true)
        {
            void* data = ::VirtualAlloc(NULL, allocationSize, MEM_RESERVE, PAGE_READWRITE);
            if (data == nullptr)
            {
                HRESULT hr = GetLastError();
                ::DebugBreak();
            }
            allocated += allocationSize;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-06
      • 2015-11-28
      • 1970-01-01
      • 2021-12-05
      • 1970-01-01
      • 2015-06-14
      • 2020-03-16
      • 2021-06-15
      相关资源
      最近更新 更多