簡體   English   中英

VMMap 報告約 100 GB 的分配

[英]VMMap reports ~100 GB allocations

我有一個應用程序,我擔心有內存泄漏。 使用 VMMAP 對其進行調查,我發現大部分分配都是保留內存。 它不應該影響性能....? 問題仍然是 - 如此大量保留內存的原因是什么(我如何調查它?)它會在某個階段影響性能嗎? 在此處輸入圖片說明

在此處輸入圖片說明

此 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;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM