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


发布于 2020-11-16 07:04:47
这个微软文档页面可以解释什么是保留内存- https://docs.microsoft.com/en-us/windows/win32/memory/page-state
您可以安全地保留大量内存,而不会出现任何问题(在x64构建中,看起来就像是这样)
我使用next代码成功保留了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;
}
}https://stackoverflow.com/questions/64850300
复制相似问题