合理利用计算机虚拟内存,虚拟内存有什么用?虚拟内存怎么设置最好?

虚拟内存有什么用?虚拟内存是什么?

在小内存的XP系统时代,虚拟内存显得非常需要。

内存主要是用来临时存贮数据 比如电脑中调用的数据,就需要从硬盘读出,发给内存,然后内存再发给CPU。 虚拟内存有什么用ne ?虚拟内存一般是用在内存不足的情况下,系统自动调用硬盘的空间,用来暂时替代不够的内存工作 。由于虚拟内存用的是硬盘空间 ,硬盘的读写速度要远远低于真正的内存 ,所以设置过大虚拟内存会影响你计算机的速度 。并且虚拟内存最好是设置成你不经常用的磁盘分区上 ,因为不经常用的分区碎片少,磁头读写顺畅,相对较快 。

那么,大内存时代虚拟内存现在还有用吗?答案是,肯定有的。

虚拟内存曾是每一个玩电脑的人都曾摆弄过的东东。不过随着硬件技术不断发展,内存价格逐步白菜化,我们的电脑再也不像当年那样算计着过日子,4GB、8GB已然成为市场主流,甚至16GB也开始进入家庭市场。

一、 虚拟内存有什么用:个别软件会需要虚拟内存

即便你的内存已经大到“无可救药”的地步,也不应该将虚拟内存关闭,因为除了传统的为RAM“后备”这一功能外,Windows也会利用虚拟内存执行一 些特定操作。此外虚拟内存的打开还有助于提高内存命中率及保证系统稳定,个别软件(如Photoshop、3Dmark等)在运行时也会需要虚拟内存。

二、 流言终结过程详解

1. 虚拟内存并不是“物理内存第二”

我们这里所说的“虚拟内存”,严格意义上应该称之为“分页文件”,因为从微软的官方文档来看,“虚拟内存”等于“物理内存”+“分页文件”总和。通俗来 讲分页文件是指我们硬盘上一个硕大无比的文件,名为“PageFile.sys”(将资源管理器设为显示系统+隐藏文件后可见)。

早期计算机内存(RAM)普遍偏低,为了解决软件运行效率不高等问题(内存不够时就需要频繁换页,将暂时不用的程序移出内存,而将即将运行的调入进 去),Windows便在硬盘上开辟了一块区域,作为“虚拟RAM”使用。一旦物理内存无法满足当前需要时,分页文件就会自动充当内存实现部分物理内存功 能,这便是大家熟知的用分页文件扩充内存功能。

c91970f7785be4f22e9f836fb41458ae.png

“虚拟内存”严格来说应该叫“分页文件”

那么当物理内存基本满足要求时,上述情况又会变成什么景象呢?举个例子吧,比如有一个图书馆,里面共有10000本图书,我们姑且将它看作是电脑的硬盘 总容量;然后你可以在门口放置一个小书架,容量50本,这个相当于Windows的分页文件大小;接下来则是每人每次的借阅极限值,为5本,相当于物理内 存数。

每次当你把手中的5本阅读完毕后,就可以到小书架或者图书馆里继续挑选。当然我不说大家也知道,从50本里找显然要10000本里找快得多,于是分页文件的第二大作用便出来了——即加快资料存取。

从上面的例子可以看出,分页文件有着帮物理内存提高“命中率”和“稳定性”的作用,因此即便你的物理内存再大(比如一次可以借阅10本或20本了),也 终将会有把书看完的那天。此时如果再找书,依然会遇到之前那个问题,究竟是从50本里找快还是直接去10000本里找快。因此从这一点上看,物理内存大小 其实与禁不禁用分页文件是没有任何联系的。

2. 分页文件对性能影响多少?

为了说明分页文件对于资料的存取效率能有多大影响,我们照例设计了一个小实验加以说明。测试过程很简单,即通过PCMark7模拟日常应用来对Windows执行一次基准评分,评分背景是标准的Windows和关闭分页文件后的Windows。

注:测试项选择的是默认的“PCMARK suite”。

18fd69479315610a711346ffb7b71198.png

PCMARK7专业版

a973a6c22b975445295f731a7093efea.png

关闭分页文件前后成绩对比

测试中我们选择的是很多用户都很熟悉的“PCMARK suite”,内含了视频播放、视频转码、图片处理、网页浏览、网页解密、图片导入、3D游戏等若干个子项,可以说是用户日常工作的一个缩影。

可以看到,在关闭了分页文件后,系统评分有了一个明显下降,表明很多应用在关闭了分页文件后都出现了不同程度的变慢。而由于我们的测试机使用的是4GB 内存(64bit系统),正常情况下并不会导致物理内存完全用尽,因此整个测试基本上可以看作是分页文件对系统性能的影响。

3. 物理内存充足时分页文件工作吗

虽然实测结果表明分页文件对于目前的大内存系统仍然有提高性能的作用,但我敢说,很多网友肯定还有另外一个疑虑——分页文件到底和物理内存是个啥关系?频繁的硬盘读写难道真不会拖累系统运行么?

37bc3f317d02e8b223add3ee4ee94b41.png

要回答这个问题其实也很简单,只要借助一款第三方软件——AIDA64就可以了。上图是硬件检测软件AIDA64对笔者电脑的检测,可以看到当前电脑的 存储系统是由4GB物理内存、4GB分页文件共同组成,其中物理内存+分页文件的总和被AIDA64称作交换区(Windows称“虚拟内存”)。那么当 一款程序启动时,它究竟会首先使用物理内存?还是按照整个虚拟内存的概念同步使用呢?

这里需要说明的是,微软有关虚拟内存的定义是与 AIDA64不同的,它是将物理内存+分页文件视为一个虚拟内存(相当于AIDA64中的“交换区”),而AIDA64则是将物理内存+交换区视为虚拟内 存。说实话AIDA64的这种划分比较令人费解,因为将一个现实数值(物理内存)与一个虚拟数值(交换区)合并原本就没有什么实际意义。因此这里我们主要 还是以微软定义为准。

最终答案非常明显,就是当物理内存用尽后,Windows才会启用分页文件。如果你不信,不妨也像我一样打开 AIDA64(软件支持实时更新,可以很直观地看到各个数值的变化),然后随意启动几款程序,观察一下“页面文件”的数值变化。你会发现随着程序启动,物 理内存和交换区数值都在持续变化,唯独页面文件却始终保持着0MB。

换句话说,在物理内存可以满足当前需要时,Windows并不会弃用高速内存而选用速度更慢的硬盘文件(分页文件),因此我们丝毫不必担心开启分页文件会影响系统整体性能,除非是你的物理内存真的无法满足系统需要。

4. 分页文件如何设置才合理

那么又一个问题来了,如果说分页文件在现今的Windows中仍然有利无弊的话,那么我们究竟是应该让Windows自行管理,还是给它设定一个具体的数值呢?

有关这个问题,笔者曾经和一位微软工程师聊过,双方的焦点在于,分页文件是一项很古老的设置,最初是将其设定为一个可变量,官方推荐是物理内存的1.5倍(即你在系统→分页文件设置框内看到的推荐值)。

但要注意的是,这条规则的设计背景是在数十年前,那时的内存普遍只有几十兆(服务器也不过如此)。但时至今日,当物理内存已经跨入GB时代,甚至个别用户已经用上16GB以上的超大内存,再去一昧照搬从前的标准显然并不适合。

11241c755669d319b6661a22708a751f.png

系统托管真的合理么?

依然还是开头图书馆的例子,现在的情形可以变更为馆藏容量未变(10000本),但每人每次的可借阅数升级为15本(即物理内存变大了),相应门口小书 架的图书量也增加为500本(分页文件按比例扩大)。那么问题来了,如果说50本的小书架可以帮我们提高效率的话,那么500本书架所消耗的时间又是多 少?如果碰巧这500本中仍然没有你想要的,需要重新进入图书馆(10000本)里继续查找的话,系统效率不慢才怪。

回到现实版中来, 小书架容量的暴增其实就相当于分页文件扩张(比如16GB内存按微软标准计算就是16GB~24GB),那么在现行机械硬盘的读取速度下(这里不考虑随机 读取与线性读取区别),若想遍历一遍16GB或者24GB空间所花费的时间,恐怕也是相当大的。换句话说,如此一来分页文件非但没有提高系统性能,反而真 的会成为系统性能的拖累!

为了更好地说明结果,我们仍然通过PCMark 7进行了一次基准测试。与先前测试略有不同的是,此次主要是对分页文件的大小进行了调整,根据测试机内存划分为“系统托管(实测为4GB)”、 “512MB”、“2GB”、“4GB”几档,当然也没忘增加了一个大容量“12GB”。

40203700ac24dc25b9ab056a59abf401.png

不同分页文件大小对于系统性能的影响

最终结果一目了然,随着分页文件的增长,系统评分开始成比例提高,到达4GB时几乎出现了此次评测最好的成绩。但当笔者人为将其升至12GB时,整体评分又有了明显下降,从而最终佐证了我们先前的推测。

虽然上述测试已经大体推算出一个分页大小,但我们并不建议所有用户都采用这一设置。原因就是每个人的硬件配置各有不同,大锅饭式设置并不一定适合每一个 人。考虑到分页文件大小可能对性能的影响,我们建议在用户内存不超4GB的情况下,可以选择由Windows自行托管,而当用户内存高于4GB,则应使用 手工设置的方法,将分页文件限定在一个范围之内(建议不超6GB),这样既可保证系统正常的吞吐需求,也不至于因分页文件过大而拖累系统速度!

此外对于动手能力较强的网友,也可自行通过“性能监视器”(perfmon.msc)添加一个“Paging File Usage”来统计自己电脑中分页文件的实际利用率,借此精确计算出自己的电脑究竟适合多大的分页文件。只不过考虑到该步骤操作较为繁琐,这里就不单独介 绍了。

写在最后

事实上就像Windows中的很多组件一样,虚拟内存并不像大家 想象得那样简单,除了众所周知的补充内存功能外(实际上现在这个用途已经很少会用到了),它还承担着提高物理内存命中率及稳定性的作用。甚至某些时 候,Windows的一些核心功能也会用上虚拟内存(如SuperPrefetch、内存转储等)。

此外个别第三方软件(如 Photoshop、3Dmax等)也是虚拟内存的忠实拥护者,强行关闭很可能导致运行出错或崩溃。当然考虑到硬盘开销及整体运行效能,用户最好根据自身 条件对分页文件大小进行限定,尽量不要让分页文件过于庞大。总之在这个问题上,并没有什么一定之规,更多的是需要使用者灵活处理。

这个提示真的不是忽悠你的

172bdbb2b847b4f7222fee3e4f58d7a4.png

附:几个小问题的解答:

1. 分页文件移至别的分区是否可提高性能?

根据微软的设计,操作系统允许同时建立多个分页文件,而且Windows会很智能地从中挑选出性能最高的进行读取。但要注意的是这个设计只针对于多块硬 盘,比如你的Windows装在硬盘1,而分页文件设在硬盘2,那么由于操作系统可以同时从两块硬盘上读取数据(一块读取操作系统,一块读取分页文件), 最终结果就是Windows的效率大增。但如果用户只有一块硬盘,将分页文件由C盘转移至其他分区,理论上并不会有明显改进,除非是你的C盘空间过于紧 张!

2. 设固定大小可否减少硬盘碎片?

有人认为Windows默认的可变大 小,常常是导致分页文件出现碎片的主要原因,这个问题我们需要从另一个角度考虑。正如大家已知的,分页文件的一个重要特性是作为内存补充使用(虽然这种情 况目前已经很少,但不排除完全没有),因此当你偶然遇到一个极耗内存程序时,还是有可能将虚拟内存耗尽并导致最终崩溃。那么此时如果使用的是默认可变内 存,相当于给了Windows一次腾挪辗转的机会,也许崩溃就不会发生。

当然这里要特别说一句的是,如果你的虚拟内存大小合理,一般情况下是不会导致Windows随意调整分页文件大小的,而这样的话产生磁盘碎片的机率也就不是很多了。

以上是关于虚拟内存有什么用和虚拟内存怎么设置最好的一些讲解。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
简介   如果计算机缺少运行程序或操作所需的随机存取内存 (RAM),则 Windows 使用虚拟内存(Virtual Memory)进行补偿。   虚拟内存将计算机的 RAM 和硬盘上的临时空间组合在一起。当 RAM 运行速度缓慢时,虚拟内存将数据从 RAM 移动到称为“分页文件”的空间中。将数据移入与移出分页文件可以释放 RAM,以便完成工作。   一般而言,计算机的 RAM 越多,程序运行得越快。如果计算机的速度由于缺少 RAM 而降低,则可以尝试增加虚拟内存来进行补偿。但是,计算机从 RAM 读取数据的速度要比从硬盘读取数据的速度快得多,因此增加 RAM 是更好的方法。 编辑本段 作用   不知大家有没有发现,在Windows2000(XP)目录下有一个名为pagefile.sys的系统文件(Windows98下为Win386.swp),它的大小经常自己发生变动,小的时候可能只有几十兆,大的时候则有数百兆,这种毫无规律的变化实在让很多人摸不着头脑。其实,pagefile.sys是Windows下的一个虚拟内存,它的作用与物理内存基本相似,但它是作为物理内存的“后备力量”而存在的,但是,它并不是在只有物理内存不够用时才发挥作用的,也就是说在物理内存够用时也有可能使用虚拟内存,如果你虚拟内存设置过小则会提示“虚拟内存不足”。 编辑本段 虚拟内存不足的原因 1、感染病毒   有些病毒发作时会占用大量内存空间,导致系统出现内存不足的问题。赶快去杀毒,升级病毒库,然后把防毒措施做好! 2、虚拟内存设置不当   虚拟内存设置不当也可能导致出现内存不足问题,一般情况下,虚拟内存大小为物理内存大小的2倍即可,如果设置得过小,就会影响系统程序的正常运行。重新调整虚拟内存大小以WinXP为例,右键点击“我的电脑”,选择“属性”,然后在“高级”标签页,点击“性能”框中的“设置”按钮,切换到“高级”标签页,然后在“虚拟内存”框中点击“更改”按钮,接着重新设置虚拟内存大小,完成后重新启动系统就好了。 3、系统空间不足   虚拟内存文件默认是在系统盘中,如WinXP的虚拟内存文件名为“pagefile.sys”,如果系统盘剩余空间过小,导致虚拟内存不足,也会出现内存不足的问题。系统盘至少要保留300MB剩余空间,当然这个数值要根据用户的实际需要而定。用户尽量不要把各种应用软件安装在系统盘中,保证有足够的空间供虚拟内存文件使用,而且最好把虚拟内存文件安放到非系统盘中。 4、因为SYSTEM用户权限设置不当   基于NT内核的Windows系统启动时,SYSTEM用户会为系统创建虚拟内存文件。有些用户为了系统的安全,采用NTFS文件系统,但却取消了SYSTEM用户在系统盘“写入”和“修改”的权限,这样就无法为系统创建虚拟内存文件,运行大型程序时,也会出现内存不足的问题。问题很好解决,只要重新赋予SYSTEM用户“写入”和“修改”的权限即可,不过这个仅限于使用NTFS文件系统的用户。 编辑本段 运行原理及过程   可能大家都会知道虚拟内存就是当物理内存不足够的时候,把硬盘的一部分当作内存来使用。   这样理解其实不够准确   物理内存就是大家平时经常说的1G内存,512M内存   首先要知道:打开任何一个程序,都是要占用物理内存的 ,当关闭这个程序的时候,系统也将会从物理内存中删除这个程序的信息   接着分两方面理解虚拟内存   --------------假设计算机物理内存是512M,系统都安装在C盘--------------------------------------   (一)当物理内存足够的时候   假设,我们运行的程序占用了215M,此时物理内存绝对够用了,但是不要以为此时系统没有用虚拟内存技术,系统照样用了虚拟内存技术,当我们打开QQ的时候,系统就为QQ这个程序指定了一个虚拟空间,只是此时这个虚拟空间里面没有信息而已   (二)当物理内存不足的时候   假设计算机运行”迅雷”和”IE浏览器”这两个个软件的时候物理内存已经达到512M,我们启动QQ,如果没有虚拟内存技术,我们此时根本不能启动QQ,因为QQ不能在内存中写入相关信息,不过现在有了虚拟内存技术,此时系统将会释放一部分物理内存给QQ用,假设释放的是迅雷所占用的物理内存,那么迅雷所占用的物理内存信息将会保存到硬盘上的一个pagefile.sys的文件中   当我们想再运行迅雷的时候,此时系统会从pagefile.sys查找相应的迅雷信息,同时把这些信息重新载入到物理内存里面,并且把QQ的信息释放到pagefiles.sys里面   这样一个循环交换过程就是虚拟内存技术,为什么叫它虚拟呢,因为系统把文件释放到了硬盘上,而这个硬盘可不是内存,只是临时的保存内存信息的地方   一句话,虚拟内存就是用如硬盘u盘等不是内存的介质来存储内存的信息   Window xp系统里面的c:/windows/prefetch这个文件夹里面的文件是虚拟内存技术的扩展,这些prefetch(预读)文件可以提升程序的运行速度   当我们运行程序时候,系统会依据内存记录这个程序经常用到的文件,并且把这个程序读取信息记录下来,同时在c:/windows/prefech下创建一个后缀是.pf的文件,并且把读取的信息保存到这.pf文件夹里面,   假设我们运行已经被记录photoshop这个程序,那么你双击桌面上的photoshop的时候,系统会先从c:/windows/prefetch中查找这个photoshop的相关记录,而不是继续运行photoshop,   系统根据以前记录photoshop用到的相关文件载入到内存中,载入好后,photoshop才可以继续运行,这样运行photoshop的速度就会提升了,大家可能看着要先执行.pf文件.再执行ps程序,这样速度还会快么?其实这个处理速度是很快的,如果没有预读文件,打开photoshop的速度会很慢的   C:/windows/prefetch里面还有一个Layout.ini这个文件,这个文件的作用就是排列文件载入的次序,   如果c:/windows/prefetch里面的预读文件很多,那么你每次运行一个程序的时候,系统都要花大量的时间去搜索这个程序有没有预读文件,这样有可能导致程序启动很慢,所以预读文件很多的时候,那么就去删除这些预读文件吧

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值