如果计算机缺少运行程序或操作所需的随机存取内存 (ram),则 windows 使用虚拟内存(virtual memory)进行补偿。 虚拟内存将计算机的 ram 和硬盘上的临时空间组合在一起。当 ram 运行速度缓慢时,虚拟内存将数据从 ram 移动到称为“分页文件”的空间中。将数据移入与移出分页文件可以释放 ram,以便完成工作。 一般而言,计算机的 ram 越多,程序运行得越快。如果计算机的速度由于缺少 ram 而降低,则可以尝试增加虚拟内存来进行补偿。但是,计算机从 ram 读取数据的速度要比从硬盘读取数据的速度快得多,因此增加 ram 是更好的方法。 编辑本段作用 不知大家有没有发现,在windows2000(xp)目录下有一个名为pagefile.sys的系统文件(windows98下为win386.swp),它的大小经常自己发生变动,小的时候可能只有几十兆,大的时候则有数百兆,这种毫无规律的变化实在让很多人摸不着头脑。其实,pagefile.sys是windows下的一个虚拟内存,它的作用与物理内存基本相似,但它是作为物理内存的“后备力量”而存在的,但是,它并不是在只有物理内存不够用时才发挥作用的,也就是说在物理内存够用时也有可能使用虚拟内存,如果你虚拟内存设置过小则会提示“虚拟内存不足”。 编辑本段产生 我们都知道,虽然在运行速度上硬盘不如内存,但在容量上内存是无法与硬盘相提并论的。当运行一个程序需要大量数据、占用大量内存时,内存就会被“塞满”,并将那些暂时不用的数据放到硬盘中,而这些数据所占的空间就是虚拟内存。现在我们也明白为什么pagefile.sys的大小会经常变化了。 内存在计算机中的作用很大,电脑中所有运行的程序都需要经过内存来执行,如果执行的程序分配的内存的总量超过了内存大小,就会导致内存消耗殆尽。为了解决这个问题,windows中运用了虚拟内存技术,即拿出一部分硬盘空间来充当内存使用,当内存占用完时,电脑就会自动调用硬盘来充当内存,以缓解内存的紧张。 举个例子来说,压缩程序在压缩时有时候需要读取文件的很大一部分并保存在内存中作反复的搜索。假设内存大小是128mb,而要压缩的文件有 200mb,且压缩软件需要保存在内存中的大小也是 200mb,那么这时操作系统就要权衡压缩程序和系统中的其他程序,把多出来的那一部分数据放进交换文件。 虚拟内存不足 1、感染病毒 有些病毒发作时会占用大量内存空间,导致系统出现内存不足的问题。赶快去杀毒,升级病毒库,然后把防毒措施做好! 2、虚拟内存设置不当 虚拟内存设置不当也可能导致出现内存不足问题,一般情况下,虚拟内存大小为物理内存大小的2倍即可,如果设置得过小,就会影响系统程序的正常运行。重新调整虚拟内存大小以winxp为例,右键点击“我的电脑”,选择“属性”,然后在“高级”标签页,点击“性能”框中的“设置”按钮,切换到“高级”标签页,然后在“虚拟内存”框中点击“更改”按钮,接着重新设置虚拟内存大小,完成后重新启动系统就好了。 3、系统空间不足 虚拟内存文件默认是在系统盘中,如winxp的虚拟内存文件名为“pagefile.sys”,如果系统盘剩余空间过小,导致虚拟内存不足,也会出现内存不足的问题。系统盘至少要保留300mb剩余空间,当然这个数值要根据用户的实际需要而定。用户尽量不要把各种应用软件安装在系统盘中,保证有足够的空间供虚拟内存文件使用,而且最好把虚拟内存文件安放到非系统盘中。 4、因为system用户权限设置不当 基于nt内核的windows系统启动时,system用户会为系统创建虚拟内存文件。有些用户为了系统的安全,采用ntfs文件系统,但却取消了system用户在系统盘“写入”和“修改”的权限,这样就无法为系统创建虚拟内存文件,运行大型程序时,也会出现内存不足的问题。问题很好解决,只要重新赋予system用户“写入”和“修改”的权限即可,不过这个仅限于使用ntfs文件系统的用户。 设置方法 对于虚拟内存主要设置两点,即内存大小和存放位置,内存大小就是设置虚拟内存最小为多少和最大为多少;而存放位置则是设置虚拟内存应使用哪个分区中的硬盘空间。对于内存大小的设置,如何得到最小值和最大值呢?你可以通过下面的方法获得:选择“开始→程序→附件→系统工具→系统监视器”(如果系统工具中没有,可以通过“添加/删除程序”中的windows安装程序进行安装)打开系统监视器,然后选择“编辑→添加项目”,在“类型”项中选择“内存管理程序”,在右侧的列表选择“交换文件大小”。这样随着你的操作,会显示出交换文件值的波动情况,你可以把经常要使用到的程序打开,然后对它们进行使用,这时查看一下系统监视器中的表现值,由于用户每次使用电脑时的情况都不尽相同,因此,最好能够通过较长时间对交换文件进行监视来找出最符合您的交换文件的数值,这样才能保证系统性能稳定以及保持在最佳的状态。一般来说,交换文件太大不会影响效率,但会占用额外的磁盘空间。交换文件太小有时会引起可以运行的程序数量变少。 找出最合适的范围值后,在设置虚拟内存时,用鼠标右键点击“我的电脑”,选择“属性”,弹出系统属性窗口,选择“性能”标签,点击下面“虚拟内存”按钮,弹出虚拟内存设置窗口,点击“用户自己指定虚拟内存设置”单选按钮,“硬盘”选较大剩余空间的分区,然后在“最小值”和“最大值”文本框中输入合适的范围值。如果您感觉使用系统监视器来获得最大和最小值有些麻烦的话,这里完全可以选择“让windows管理虚拟内存设置”。 调整分页位置 windows9x的虚拟内存分页位置,其实就是保存在c盘根目录下的一个虚拟内存文件(也称为交换文件)win386.swp,它的存放位置可以是任何一个分区,如果系统盘c容量有限,我们可以把win386.swp调到别的分区中,方法是在记事本中打开system.ini(c:windows下)文件,在[386enh]小节中,将“pagingdrive=c:windowswin386.swp”,改为其他分区的路径,如将交换文件放在d:中,则改为“pagingdrive=d:win386.swp”,如没有上述语句可以直接键入即可。 而对于使用windows2000和windowsxp的,可以选择“控制面板→系统→高级→性能”中的“设置→高级→更改”,打开虚拟内存设置窗口,在驱动器[卷标]中默认选择的是系统所在的分区,如果想更改到其他分区中,首先要把原先的分区设置为无分页文件,然后再选择其他分区。 或者,winxp一般要求物理内存在256m以上。如果你喜欢玩大型3d游戏,而内存(包括显存)又不够大,系统会经常提示说虚拟内存不够,系统会自动调整(虚拟内存设置为系统管理)。 如果你的硬盘空间够大,你也可以自己设置虚拟内存,具体步骤如下:右键单击“我的电脑”→属性→高级→性能设置→高级→虚拟内存更改→选择虚拟内存(页面文件)存放的分区→自定义大小→确定最大值和最小值→设置。一般来说,虚拟内存为物理内存的1.5倍,稍大一点也可以,如果你不想虚拟内存频繁改动,可以将最大值和最小值设置为一样。{另一种说法:调整时我们需要注意,不要将最大、最小页面文件设为等值。因为通常内存不会真正“塞满”,它会在内存储量到达一定程度时,自动将一部分暂时不用的数据放到硬盘中。最小页面文件越大,所占比例就低,执行的速度也就越慢。最大页面文件是极限值,有时打开很多程序,内存和最小页面文件都已“塞满”,就会自动溢出到最大页面文件。所以将两者设为等值是不合理的。一般情况下,最小页面文件设得小些,这样能在内存中尽可能存储更多数据,效率就越高。最大页面文件设得大些,以免出现“满员”的情况。 ps:①1.5倍虚拟内存设置,是网上技术文档通用说明的,个人认为可以根据常用软件的实际情况设定。推荐有经验的用户使用。 ②现在有很多工具软件(例如windows优化大师、超级兔子),可以很好的更改这些设置,工具软件也会根据你的电脑的实际情况进行相应的推荐设置。 手动设置 ①用右键点击桌面上的“我的电脑”图标,在出现的右键菜单中选“属性”选项打开“系统属性”窗口。在窗口中点击“高级”选项卡,出现高级设置的对话框 ②点击“性能”区域的“设置”按钮,在出现的“性能选项”窗口中选择“高级”选项卡,打开其对话框。 ③在该对话框中可看到关于虚拟内存的区域,点击“更改”按钮进入“虚拟内存”的设置窗口。选择一个有较大空闲容量的分区,勾选“自定义大小”前的复选框,将具体数值填入“初始大小”、“最大值”栏中,而后依次点击“设置→确定”按钮即可,最后重新启动计算机使虚拟内存设置生效。 注意事项 允许设置的虚拟内存最小值为2mb,最大值不能超过当前硬盘的剩余空间值,同时也不能超过32位操作系统的内存寻址范围——4gb。 1、禁用页面文件 当拥有了1g以上的内存时,页面文件的作用将不再明显,因此我们可以将其禁用。方法是:依次进入注册表编辑器“hkey_local_machine\system\currentcontrolset\control\sessionmanager\memorymanagement”下,在“disablepagingexecutive”(禁用页面文件)选项中将其值设为“1”即可。 ps:此举可能会造成系统不稳定.某些程序无法运行或死机。请根据自己实际情况更改。 1g以上内存就比较够用了,玩游戏、使用大型软件不推荐禁用虚拟内存。当然如果内存有2g的时候,可以根据自己的实际情况选择虚拟内存的使用大小(我个人认为2g内存可以禁用虚拟内存以提升系统性能,vista系统内存使用比较大,可以根据实际情况设定)。 2、清空页面文件 在同一位置上有一个“clearpagefileatshutdown(关机时清除页面文件)”,将该值设为“1”。这里所说的“清除”页面文件并非是指从硬盘上完全删除pagefile.sys文件,而是对其进行“清洗”和整理,根据微软的说法,这是一个安全选项,与性能无关。 高级话题:使用 sweepram 工具。适用于 windows 2000/xp/2003。网上可以找到 sweepram 程序。该程序最大的作用是把所有进程的工作集清空。所谓工作集是指进程已映射的物理内存部分(即这些内存块全在物理内存中,并且 cpu 可以直接访问),还有一部分不在工作集中的虚拟内存则可能在转换列表中(cpu 不能通过虚地址访问,需要 windows 映射之后才能访问),还有一部分则在磁盘上的页面文件里。工作集在进程运行时会被 windows 自动调整,频繁访问的页面(4kb 的块)会留在内存中,而不频繁访问的页面在内存紧张时会被从工作集中移出,暂时保存在内存中的“转换列表”中,或者进一步换出到页面文件中。当应用程序再次访问某一页面时,操作系统会将它重新加回工作集中。 sweepram 工具以一种适中的频率(大约 40 分钟一次)反复运行,可以将各进程的工作集清空,而之后各进程的工作集会慢慢恢复。这样可以保持更好的工作集平衡,从而提高系统性能。