各位好,小弟用Qt Creator写了一个浏览照片的程式
程式中会大量的开启指定的图档然后显示到视窗中
但每次读取到一定的量后,程式就会没办法再读取图片
严重甚至崩溃,检查后才发现似乎跟程式使用的内存有关
每当我程式读取的图片占用的内存到了1.2G以上,
程式很容易就无法再读取图片了,
我很确定我电脑的内存还有很多尚未使用的部分@@
我电脑有16G的内存,作业系统是WIN7 64位元
我用工作管理员看效能那一栏下面的实体内存部分有四个内容
分别是‘总共、快取的、可用、未使用’
根据我GOOGLE查到的结果,‘未使用’其实只是还没被作业系统移到‘快取的’而已
电脑闲置的时间越久,未使用就会越少,快取的就会越多,
这样电脑中的程式要用到内存时就可以迅速的从‘快取的’取出来使用,
我打开电脑的VM ware时,‘快取的’的确会大量的减少
但我发现我程式每次在读取图片时,‘快取的’都不会减少,
反而减少的都是‘未使用’
当下一张读取的图片档案大小超过‘未使用’时,程式就没办法读取照片了@@
而刚好我电脑的‘未使用’每次都差不多是剩1.1G左右
我不知道这段叙述跟我遇到的问题有没有相关ˇ_ˇ
我也不敢100%确定我这段叙述真的是正确的
所以想请问该怎么样才可以让程式读取更多的照片?
或者是说使用更多的内存
这问题我真的查了很久都查不太到解答...
本来有查到说有人讲我应该要用64位元的编译器才行,
但我在想这样32位元的系统不就不能执行了吗?
而且有很多32位元的程式都会超过2G以上的不是吗@@
不晓得有没有高手可以指点一下的,拜托了
我写了一个测试的读档程式放上来,不知道这样有没有违规,
有的话麻烦告知,我会速删的。
这程式会读取同资料夹下11.7MB的1.jpg图档,按一次按钮会读取五次
因为没有写执行绪,所以读取过程会delay一段时间,
想说可以测试看看是不是真的‘未使用’的部分不够大时程式就无法读取了。
https://mega.co.nz/#!UBsnCBSZ!hsvJ1ru5uU8KhL8zGoqsYww_3cINiUjK4Q3AAUzYQj0
不过写了这程式反而让我发现其他事情,
明明照片才11.7MB,可是开启一次却会让程式占用大约370M的内存
所以我自己的电脑只能开到三张,就没办法再开了
照片的大小是16744*5615,我把他相乘后再*4就是376M,
难道程式读取照片占用的内存是看这个@@?
我一直以为是看档案大小,虽然发现这事情,不过问题还是存在ˇ_ˇ
拜托各位指点一下了,谢谢