积极答复者
有关vista家庭高级版对3G内存的使用问题

问题
-
vista家庭高级版,P35主板,3G内存,已开启PAE,在网上看了说是windows系统默认只给程序分配2G的内存,这样实际知识利用了2G的内存,我的任务管理器理的以缓存的确最大只有2346M,我想问问微软的这方面的专家,这个是不是只是利用了2G内存,哪1G实际没有利用,才用这个方法
:运行一下bcdedit /set increaseuserva 3072 ,windows就会把2G以上的内存也分配给应用程序了(3GB),这个做法对吗?能提升性能吗,哪剩下的1G被谁利用了?呢不是浪费了?因为有一次我复制大量文件到移动硬盘,之后在复制回来时提示内存不足不能复制,可我看内存还闲置1G左右?
答案
全部回复
-
x86 的 Windows 受限于 32 位的限制最大只能使用 4GB 的内存。其中在默认的系统设置中,有 2GB 内存可以由操作系统及应用软件支配,剩下的 2GB 内存,考虑到 PCI 设备占用的寻址范围,Windows 会使用剩下的 2GB 内存地址空间保证这些设备的兼容性,虽然你的计算机可能很多地址未被使用。
BCDEDIT /SET INCREASEUSERVA 3072 是为了将最大 4GB 内存中的 3GB 分配给应用软件,但最多只能设置 3GB,剩下的 1GB 必须保留给硬件。也就是说,硬件至少要保留 1GB 内存,在 x86 的 Windows 中,应用软件最多可以使用 3GB。
-
按照理论说上 P35的主板应该是支持4G内存的 也就是支持32位内存寻址 楼主的CPU 也应该是能够支持4G内存的,问题不出现在此说明。
要支持4G内存(尽管楼主的内存是3G)不仅仅是要靠CPU、主板,还有系统,三者缺一不可。
Vista 32位版 理论最高寻址就是4G 但是这是物理内存 并不是我们日常所说的内存条,还包括了主板BIOS芯片的ROM,显卡上的显存(RAM)和BIOS(ROM),以及各种PCI、PCI-E设备上的RAM和ROM。
这样说 楼主是不是已经理解了些了呢?
因为总共只支持4G物理内存 及只能够为4G内存编址 对于非系统可用内存的优先级是高于内存条的 就是必须先对BIOS 显卡 等等物理内存编址 再来进行对内存的编址 因为系统开机时必需先从4GB的顶端地址(FFFF_FFFFh)读取BIOS数据, 这是IA32架构和4GB地址空间的局限
解决方法1 就是扩展地址空间 例如安装Server系统 前提是主板 U已经支持超过4G内存。
解决方法2 开启主板BIOS中的“内存重映射”
“内存重映射”技术必须通过BIOS完成。所以BIOS必须具有支持内存重映射的功能模块,以便根据用户安装的内存容量来确定是否需要启用内存重映射功能。同时,在BIOS的设置选单中也要有“Memory Re-Mapping”的设置选项,使用4GB或者4GB以上内存的用户一定要将此项设置设为“Enable”
关于内存地址空间局限的问题,想深入了解的朋友可以看看这里的帖子:http://bbs.pcbeta.com/thread-218419-1-2.html
其实在讨论内存编址寻址的时候我们往往忽略了一个问题 就是现在显卡显存的容量已经是不可忽略的了