bsnlr 写了:目前已经确定32位系统只能支持4g内存,但网上很多说法似是而非,特在此请教,以正视听。包括linux与windows。
问题1:32位系统在扩展支持大于4g内存后,有没有实际效率提升
windows在启动参数中加pae,或者直接用win2003这样的32位服务器系统,可以支持大于4g的内存。而linux换了服务器版本的内核后一样能行。
以上这些设置改变,是否是真的改变了32位系统对内存管理的固有限制?还是只是一种变通的办法,如果是变通的办法,是否对系统稳定性、运行效率有影响?
问题2:虚拟内存有没有4g的限制
如果是32位系统,windows不加pae参数,虚拟内存(页面文件)能不能大于4g?linux仍使用桌面版内核的情况下,所管理的swap分区能不能大于4g?
按理说,对系统而言,虚拟内存被当成真实物理内存一样管理,如果物理内存都有4g限制,虚拟内存是不是也是一样?更进一步讲,一般的32位系统,是不是有(物理内存+虚拟内存)<4g 这样的限制?
问题3:我使用3g内存,是否可以禁用虚拟内存
如果是windows xp或者windows 7,禁用虚拟内存(让页面文件为0m)行不行?能不能提升系统效率?
如果是ubuntu desktop 9.10,不分swap分区行不行,能不能提升系统效率?
两种系统,windows linux,在虚拟内存的管理效率上有什么不同,原理是什么。
万分感谢能有明白人解疑释惑

3个概念,1 虚拟内存空间 2 虚拟内存(确切点是磁盘文件或swap) 3 物理内存
1、如果你有超过4g的ram,那么一定需要开启pae。系统的整体运行性能肯定有提升,特别是长时间运行,感觉更明显,不管如何增加了那么多的磁盘缓存肯定是要快多了。具体的技术细节涉及到虚拟内存管理、进程、i386架构等专业概念,有兴趣可以百度:)
32位系统讨论的内存限制一般指的是进程的寻址空间,32位的话那(单个进程)就肯定只能用到4g拉,实际能使用的物理内存是2g-3g吧,这主要看什么操作系统。至于pae则是对于系统、操作系统而言,增加系统可以管理的物理内存空间。也就是说,系统可以拥有超过4g的内存,但是每个进程的最大可用内存依然不会超过4g。稳定性肯定没问题的。效率肯定会有提升,从内存读数据肯定比从硬盘快(linux下在虚拟终端下用free命令看buffers和caches字段的内容),不过桌面用户感觉可能不明显(内存超过1g,比较下第一次启动魔兽运行较大的rpg地图和第二次启动的时间)。32位桌面用户可能有个4g内存基本就足够了。
2、其实可以参考第一个问题。32位系统的虚拟空间地址就是4g,这个和你的物理内存空间、pae没关系,这个是cpu的问题。swap肯定可以超过4g。物理内存和虚拟内存的关系详细请百度、谷歌

。 基本就是个映射吧,进程启动就拥有4g的内存空间,这个就是虚拟地址空间,然后具体这个地址上的数据是放在物理内存还是磁盘,那是系统决定的。物理内存多就用物理内存,少就要是用磁盘,但是程序运行肯定是需要在物理内存中的,物理内存少也就意味着系统需要在物理内存和磁盘间来回倒腾数据,这也就是物理内存多效率肯定要提升的原因。但多到足够所有的进程都在物理内存中运行,则更多的内存成为磁盘和程序的缓存。
3、完全可以。效率提升有限。因为系统会根据需要合理安排使用磁盘上的虚拟内存。windowsxp效果要明显些,因为xp出生的年代物理内存还较贵,一般也就256m。所以默认情况下会更努力使用磁盘上的虚拟内存,再有就是windows有专门的api(典型如qq,再有很多所谓的优化软件使用这个api)可以由程序主动提交物理内存到磁盘上的虚拟内存中。但对于现代系统则通常影响是微弱可以忽略的。
无论是windows还linux系统建议都分配一定的磁盘虚拟内存,这样好处大于坏处,追根究底请百度,且可以现禁用虚拟内存然后装个老板的ps如photoshop7:)
两种系统对于虚拟内存的管理,无实质区别,效率也没有明显的好坏,因为虚拟内存的管理规则是cpu指定的。理论上,linux使用独立的磁盘分区效率会高点。实际使用则不会有区别(高负载低配置服务器可能有例外)原理请找intel的相关手册和操作系统的手册