本人的一个程序在其中间部分需要读入一个600MB左右的图像,在读入此图像之前我把之前所有的内存都释放了(此时任务管理器中显示还有很多内存),但是这时候我给这幅图像分配空间的时候就会出现内存不足?请各位编程牛人分析原因,并给出解决之道,本人万分感谢!
内存问题
------解决方案--------------------------------------------------------
你释放内存,并不等于立即交还系统,会由GC去清理,可能那个时候确实没有连续的600m空间供你读入600m数据
读入这个图像干嘛,显示吗,如果使显示,为什么要高600m的图像,如果是仅仅读入文件流,可以考虑部分读入
------解决方案--------------------------------------------------------
这个与你的剩余多少内存没有直接关系,而与系统能够分配多少的连续内存有关,因为图像加载后必须在一连续内中,由于系统中有很多内存碎片,一般分配这么大内存会失败。
------解决方案--------------------------------------------------------
大图像基本没办法了,只有分块处理,但是一旦分块,处理起来特麻烦。