eclipse字体大小设置-北斗三号全球卫星导航系统下载
2023年3月30日发(作者:笔记本怎么连接电视)我们都知道32位操作系统的理论物理地址寻址空间是4GB大小,既00000000-FFFFFFFF,这是本身硬件框架的限制,但是从XP SP2开始,Windows操作系统多了一个叫PAE的功能,既物理地址扩展。该功能主要有两个用处,一个是非执行页面保护,另外一个就是将物理地址的寻址空间扩展到128GB。
那么为什么无论是XP、VISTA还是Win7,都无法使用4GB以上,甚至在大部分的时候,我们都只能使用,甚至内存,而无论是Server 2003还是Server 2008,都可以支持到128GB大小,事实上并不是找不到,而是微软不给我们用。
在测试XP SP2的时候,微软发现很多计算机在使用超过4GB内存的时候都会发生各种硬件错误,原因是那时候的硬件驱动程序基本上是不支持寻址到32位地址以上的空间,这要从各种硬件的工作方式说起。
在Windows下硬件是通过将自身映射到一段物理内存地址上,以方便CPU像访问内存一样直接访问硬件本身的方式来工作,这个空间有大有小,例如一般的主流显卡都需要映射相当于256MB内存的地址空间,这就是为什么32位操作系统本身支持寻址4GB内存,而我们就算安了4GB内存也无法完全使用的原因。因为那段寻址的地址空间被占用了,这并不是说内存本身被占用了,而是本来应该划给内存使用的那一段寻址范围被划给了硬件,而硬件本身是不占用那些内存的,仅仅是占用地址,这两者的概念要区分开来。这就是为什么硬件安装得越多,可用的物理内存也就越少。一般主流的计算机可用的内存多数都在,而安装有SLI或者交火系统的计算机这个值甚至会缩减到。
这时候微软就是用了一个办法,那就是PAE,它可以在操作系统层面上支持寻址到40位的物理地址空间,既-FFFFFFFFFF,也就是128GB,理论上来说,只要主板支持PAE,那么即使是32位操作系统,也可以使用128GB内存,但是当微软测试时却发现,多数硬件的驱动程序在寻址到FFFFFFFF以上的空间时就会寻址失败,从而导致系统蓝屏,而微软却无法将硬件的地址映射范围控制在00000000-FFFFFFFF这个范围内,所以他们最终决定在个人使用的操作系统上作出限制,以避免发生类似的硬件问题,这才是为什么在XP SP2、Vista、Win7之下无法使用4GB以上内存的根本原因。而各种服务器操作系统,一般而言并不会使用较旧的或者一些驱动支持不完善的硬件,它们的硬件驱动程序一般都可以寻址到4GB以上,所以在32位的服务器操作系统上并没有这个限制。
那么我们怎样在32位的操作系统上找到那些丢失的内存?这里有两个先决条件,就是主板和操作系统都要支持PAE。
一般来说现在主要有两个方法,一个是使用Ram
Disk,另外一个是替换系统文件,使操作系统直接支持40位地址的寻址。
先说替换系统文件,这个办法可以说是最稳定也是最不稳定的。说它最稳定,是因为Windows本身是支持这个功能的,我们所作的仅仅是把限制给打开,并不需要挂载额外的驱动程序,说它最不稳定,那是因为只要你的计算机内有一个硬件的驱动程序不支持寻址到4GB以上,只要操作系统一访问那个硬件,马上就会蓝屏。当然,如果你换成Server系统,使用相同的驱动程序也会蓝屏,所以如果要使用这个办法使Windows支持4GB以上的内存,首先要确定的就是你的计算机里面所有的硬件驱动程序都支持寻址4GB以上地址,这在如今的主流计算机上没有什么问题,但是如果你的计算机里面有一些视频采集卡之类的驱动支持不太好的硬件就不好说了。而且这个办法相当于破解系统,我们也无法保证它是不是会在某个补丁更新后失效或者是发生其他古怪的问题。
另外一个办法就是使用RamDisk,无论是收费的商业软件如SuperSpeed RamDisk还是免费的小软件RamDisk4G都能很好地找回丢失的那部分内存而且不会对系统本身造成任何影响,因为他们都是在操作系统把所有的物理地址都分配完以后才开始工作。但是这类型软件本身的工作方式就决定了他们不可能像直接破解限制那样使操作系统直接支持4GB以上内存,这里就来说说它们的优劣。
现在一般使用的RamDisk软件就是SuperSpeed RamDisk和RamDisk4G这两款,前者功能强大,但是是商业软件,后者功能简单,体积小巧。无论是哪款都可以在Win7下很好地工作(SuperSpeed RamDisk需要10.0版本),那么我们如何来选择呢?
SuperSpeed RamDisk的优点是支持关机的时候将内存盘的内容保存到硬盘的映像文件上,在开机的时候又从硬盘上读取(当然也可以不那么做),缺点是设置较为复杂,而且是收费的商业软件。
RamDisk4G的优点是体积小巧,设置简单,免费,甚至都不需要安装,但缺点同样是太简单了,它能做的仅仅是在开机的时候为你的电脑设置一个内存盘,仅此而已。
说说他们在Win7下的实际使用效果,我们使用内存盘的目的无非是充分发掘计算机物理内存的作用,因此也就从这个方面来讲。Win7下能充分发挥内存盘作用的无非是两个功能,虚拟内存和ReadyBoost,先来看虚拟内存的支持。事实上将虚拟内存设置到内存盘中时就意味着可以使用全部的物理,这可以在禁用硬盘上的虚拟内存同样可以打开跟物理内存相同的程序大小这一点上来得到证明,所以虚拟内存设置到内存盘上是非常有用的功能。
两者在将虚拟内存设置到内存盘中的时候都可以很好地工作,
并且在开机后都无需重新设置。两者的区别无非是一个在关机后虚拟内存全部消失,另外一个则是跟Windows通常的工作方式相同(既关机后虚拟内存依然存在),这在实际使用的过程中并没有看出什么去区别来。但是无论是RamDisk4G还是SuperSpeed RamDisk,都无法在虚拟内存设置到内存盘上的情况下支持Win7的休眠。两者在从休眠中唤醒的时候都会蓝屏,这是因为Windows休眠的原理是将内存中的所有内容储存到物理磁盘上,在开机后再从物理磁盘读取到内存中,而虚拟内存中的内容本身就在物理磁盘上,因而Windows不会再次将这些内容保存到休眠文件中。但实际上内存盘中的内容是在物理内存上的,断电就消失,所以就导致计算机从休眠中唤醒的时候无法正确地恢复所有的内存。RamDisk4G就不说了,这一点希望SuperSpeed RamDisk在以后的版本中可以改进,在休眠的时候同样将内存保存到硬盘的映像文件中,这样就可以正常地使用休眠功能了。
至于ReadyBoost,RamDisk4G无论如何设置都无法在内存盘上使用该功能,这里重点说下SuperSpeed RamDisk。在设置为在硬盘上保存镜像文件的时候,ReadyBoost是可以正常使用的,而且开机后也不需要重新设置,但是从休眠唤醒后ReadyBoost的设置会丢失,这点需要注意。由于Windows本身在设计ReadyBoost功能的时候就考虑到硬件随时可以和系统断开连接,因此ReadyBoost的缓存内容都在硬盘的虚拟内存中有相应的文件,因此不必担心对系统的稳定性会造成影响,至于能提升多少性能,这个只有当你的内存频繁地和虚拟内存交换文件的时候才可以看出来,如果不是运行几个大型软件和大型游戏,平时几乎不会有什么区别,这个和把虚拟内存设置到内存盘中所能带来的立竿见影的效果相差很大,如何取舍就看各位的了。
最后要提醒各位的是,即使你有4GB内存,并且将虚拟内存设置到内存盘上时,也仍然不要完全禁用硬盘上的虚拟内存。在我测试的时候,在Win7开机后,什么程序也不运行,玩Crysis分辨率超过1440X900仍然会报告内存不足。我们来想象一下多核CPU用户的典型应用环境,开着1-2个大型网络游戏,聊天软件,再下载着什么东西,或者再开个播放器听歌,这时候CPU完全是吃得消的,但是4GB内存就明显不够用了,如果你有6GB或者8GB的物理内存,或者可以尝试一下完全禁用硬盘上的交换文件。
更多推荐
readyboost
发布评论