我在具有 6GB RAM 的 Windows 7 X64 上运行一个进程。当我想为此过程提交超过 2GB 的空间时,问题就出现了。我想使用 SetProcessWorkingSetSize() 但它没有效果。在大约 2040 MB 中仍然存在访问冲突,并且超过 30% 的 RAM 是空闲的。最奇怪的是,每次运行分配的内存量都是相同的。我的问题是我怎样才能在我的过程中使用超过这个值?我需要为这个过程充分利用 RAM。为了测试它,我写了一个简单的代码。如您所见,我并没有尝试分配一个大数组,在 while(1) 循环的每次迭代中,我只分配 640 个字节,并且访问冲突恰好发生在 2040MB 左右。
这是代码段:
class Dummy
{
long double x;
long double y;
long double z;
long double k;
long double l;
long double m;
long double n;
long double p;
};
int main()
{
while(1){new Dummy[10];}
}
这是任务管理器的截图: