gpt4 book ai didi

c++ - 如何更改进程可以分配的最大内存(每次大约 2040 MB 时都会出现访问冲突)

转载 作者:太空宇宙 更新时间:2023-11-04 00:38:50 26 4
gpt4 key购买 nike

我正在具有 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];}
}

这是任务管理器的截图:

Task Manager

最佳答案

您的程序是在 32 位模式下编译的。因此,它只能使用这么多内存。这是架构限制。

如果你想让它能够使用更多的内存,你必须在64位模式下编译它。

关于c++ - 如何更改进程可以分配的最大内存(每次大约 2040 MB 时都会出现访问冲突),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17467999/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com