Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading 当应用程序达到大约1.5GB的系统内存使用量时,分配错误_Multithreading_Out Of Memory - Fatal编程技术网

Multithreading 当应用程序达到大约1.5GB的系统内存使用量时,分配错误

Multithreading 当应用程序达到大约1.5GB的系统内存使用量时,分配错误,multithreading,out-of-memory,Multithreading,Out Of Memory,首先是一些背景。我正在构建一个32位应用程序,但运行在64位windows上 该应用程序加载一组用于图形渲染的文件,并且是多线程的 问题是,当应用程序达到1.5GB左右时,我会遇到严重的分配错误。这个边界在1.5GB到1.8GB之间变化很大,而且似乎从未接近我所期望的2GB单应用程序内存边界 应用程序本身是多线程的,在我的测试中,如果删除其中一个线程,它似乎能够分配更多内存 有什么原因我不能分配到全部2GB吗 注意:GPU内存使用量约为400MB,即使我关闭渲染,问题仍然存在 提前感谢您的帮助

首先是一些背景。我正在构建一个32位应用程序,但运行在64位windows上

该应用程序加载一组用于图形渲染的文件,并且是多线程的

问题是,当应用程序达到1.5GB左右时,我会遇到严重的分配错误。这个边界在1.5GB到1.8GB之间变化很大,而且似乎从未接近我所期望的2GB单应用程序内存边界

应用程序本身是多线程的,在我的测试中,如果删除其中一个线程,它似乎能够分配更多内存

有什么原因我不能分配到全部2GB吗

注意:GPU内存使用量约为400MB,即使我关闭渲染,问题仍然存在


提前感谢您的帮助

进程已分配其他内存。。?内存地址碎片。。?什么语言/分配调用(包括分配请求的大小)?可能相关:C++,内存分配发生在DLL内部,所以我不能确定分配调用。我假设是“新的”。碎片应该是最小的,因为它在加载阶段,并且没有太多的删除操作。每个文件大约5-10 MB(图形文件),一开始加载的一个文件大约为300 MB对不起,但是如果没有它,我们就无法重现问题,很难提出具体的建议。您可以说,您在初始化期间加载了大文件。唯一的一个事实表明您存在内存碎片(除非您使用低级函数实现读取文件)。在64位Windows上,32位进程可以使用2GB内存,而使用/LargeAddressWare时最高可达4GB()。但是,也许您正在使用一个库,它希望指针的顶部位为零。因此,在1.5-1.8之间出现内存不足异常表示内存碎片。你应该检查你的代码。