话说32bit的Win7不能使用4G的内存(识别出4G,只能使用3.25G),这让我心里很不爽,恰好机器用的是集成的显卡,不知道如果把剩余的这些内存全部划分给板载显卡的显示核心,那么4G内存不就全部使用到了么?
于是切换到BIOS中,发现最大可以划分512MB的内存给显示核心使用。好吧,就选择最大,保存启动windows.进入系统后发现和以前没有任何的区别,但是这个划分给显示核心的内存是不是属于windows 7可以使用的3.25G内存的范围内呢?于是做了个实验。
写了一个死循环的东西,不断的像系统申请内存,同时通过任务管理查看内存的使用情况。代码如下。
1 2 3 4 5 6 7 8 9 10 11 | int main() { CLinks<double> link; while(true) { link.add(2.22222); } system("pause") ; return 0 ; } |
结果很让人伤心,在任务管理中内存使用到2.83G左右的时候,出现错误了。无法申请更多的内存空间,观察数据:2.83G+512MB = 3.25G左右
最后得出结论(可能不正确):悲剧的32 bit windows 7识别出的那3.25G内存,如果显卡要从内存中划分显存的话,那么,操作系统能使用的内存会更少。