当我在Visual Studio 2015中运行我的应用程序时,我在诊断工具中看到进程内存已达到2GB - 好像有一个限制:
我读过,执行x32
会限制可用内存,因此必须使用x64
。所以我构建relase, x64
,它给出了上面显示的结果。如何删除此“限制”?
注意:我有16GB Ram硬件(操作系统:Windows 10)。
答案 0 :(得分:5)
没有这样的限制,这可能是你的代码(或你使用的某个库)正好使用2gb内存。
如果你尝试在x86应用程序中分配超过2GB的内存 - 你将获得std :: bad_alloc异常,因为OS无法提供更多,尽管你有更多14GB的可用内存。
编译为x64的MSVC2015中非常简单的程序,如下所示:
for (int i = 0; i < 4000000; ++i) {
char* ch = new char[1024];
}
占用4GB的RAM,默认配置没有限制。
答案 1 :(得分:1)
诊断工具设置定义了使用资源的限制值。您应该取消选中此选项。