分类：电脑/网络-互联网
问题：虚拟内存是怎么回事？怎么调试？哪位大侠帮帮忙 
回答：虚拟在Windows XP中是非常不起眼的，Windows XP安装时会自动对其进行设置，用户甚至根本不必理会这个文件。但是虚拟内存作为物理内存的补充和延伸，对Windows XP的稳定运行起着举足轻重的作用，如果设置不好，会影响计算机的整体性能。  甲方：我在Windows XP操作系统中运行一款3D游戏时，却突然看到系统托盘区中弹出“虚拟内存不足”这样的提示。联想到以前也曾出现过此种问题，我该如何去解决呢？（点击查看更多软件使用技巧）   乙方：虚拟内存是将一部分硬盘空间来充当内存使用，虽然硬盘的运行速度不能与内存相比，可是容量却要比内存的容量高出许多。其作用在于可将一些读取到内存中却暂时不用的数据转移到虚拟内存中，这样便可释放出内存的空间，将有限的内存空间去继续存放未被读取的数据。  当出现虚拟内存不足的提示时，若不加以解决，那么便会影响到系统运转的效率。此时将虚拟内存的初始值和最大值设置为同一值，这样就可以大大提高系统的性能。   丙方：乙方所说的解决方法有误。这是因为如果将虚拟内存的初始值和最大值都设为两个相同的数值，那么在初始页面文件很大的情况下，也许正好会读取内存中一个容量较小的数据文件，这样它在虚拟内存中所占比例就越低，执行的速度也就越慢。而如果虚拟内存的初始页面很少，那么当数据超过初始页面文件的容量时，就会自动溢出到最大页面文件，但由于最大页面文件的容量与初始页面文件的容量相同，这样发生内存溢出的错误也在所难免了。  所以我们在设置虚拟内存大小时，应当将初始页面文件设得较小的容量，这样才能在内存中尽可能地存储更多数据，使其效率提高，同时也应提高最大页面文件的容量，防止“虚拟内存不足”的提示再次出现。  以上所述的是设置虚拟内存的基本原则，而若是要设定具体的虚拟内存容量大小，那么不妨采用下面两种方法：  第一种方法比较简单。  依次点击系统菜单“开始→控制面板”，在“控制面板”窗口中双击“系统”组件，单击窗口上的“高级”选项卡，在“性能”区域中的单击“设置”按钮。在打开的对话框中点击“高级”选项卡，单击“虚拟内存”区域中的“更改”按钮以进入虚拟内存设置窗口。   在窗口的“驱动器”栏目中选中分区盘符。由于硬盘读取数据是靠磁头在磁性物质上读取，而系统盘中有许多系统文件，若虚拟内存的页面文件也位于系统盘上，页面文件必然不连续，磁头来回读取就会影响系统性能，所以我们可将虚拟内存文件设定在一个非系统分区的单独分区中。  然后在“所选驱动器的页面文件大小”区域中点选“自定义大小”选项，分别在“初始大小”、“最大值”栏目中填入相应的数值即可。  根据微软公司的建议，虚拟内存交换文件最小值应设为内存容量的1.5倍，不过若内存容量是512MB甚至1GB，那么它所占用的空间肯定也不少。因此当内存总容量在256MB以下，就将虚拟内存的最小值设置为1.5倍；在512MB以上，设置为内存容量的一半；介于256MB与512MB之间的就设为与内存容量的相同值。  第二种虚拟内存的设置方法略嫌复杂，不过针对性更强。  首先运行电脑中经常使用的应用程序，然后打开“Windows任务管理器”窗口。单击窗口“性能”选项卡，在出现的页面中可显示出“物理内存”和“认可用量”。其中“物理内存”的“可用数”若小于物理内存的实际容量，则表示当前的物理内存够用。而倘若“认可用量”区域中所显示的“总数”、“峰值”等数值都超过了虚拟内存现有的容量大小，那么此时就可进入虚拟内存设置窗口，将虚拟内存的“初始大小”值与“总数”、“峰值”数值相近的容量即可。再谈谈虚拟内存如何设置为好    一般人装好Windows以后，可能都会让系统自动处理虚拟内存。如果只是上网打字，这个东东确实不用你操心，但如果你要进行视频播放、编辑以及3D游戏等等对资源要求较高的任务，就要小心设置自己的虚拟内存了。虚拟内存的设置好坏涉及到系统的快慢、磁盘碎片产生的多少，甚至会影响到系统的稳定程度，确实不容小看。虽然这个问题已经有不少文章进行过讨论，但随着笔者就来谈谈怎样根据不同的任务种类设置虚拟内存：一、为减少磁盘碎片设置虚拟内存  安装Windows的时候，默认的虚拟内存是放在安装系统所在的分区的，大小一般是物理内存的1.5倍。由于Windows还会把临时文件（TEMP目录及*.TMP）、IE缓冲区都放在该分区，这些文件都会频繁地更新写入硬盘，再加上虚拟内存的话，产生的文件碎片数量就比较多了。笔者认为，与其用整理软件耗费大量时间整理碎片，倒不如为这些文件专门划分一个分区，让它们随时有连续的空间可利用，速度也会更快。建议分出一个2G左右的分区，把TEMP、IE缓冲区的路径全部直向该分区，虚拟内存当然也放上面了，假设你是用E盘作该分区，到一定时间想清理的时候，简单地在DOS里清空文件或快速格式化E盘就可以了。二、虚拟内存大小有学问  虚拟内存在不同的Windows版本下，不同的任务环境里，对系统的运行速度及稳定程度是有很大差异的。所以朋友们最好根据自己的实际情况设置：1、3D游戏为主的应用  3D游戏是一种对CPU、显卡、内存要求都很高的应用，一般人内存不会超过256M，所以硬盘也会加入到帮忙临时交换数据的行列。笔者建议你把虚拟内存预设得大一点，这是由于3D渲染人物和景物模型需要大量的内存资源，虚拟内存也会变得很大，在游戏过程中，游戏本身的计算量已经很大，CPU负荷很重，如果初始的虚拟内存不够，要临时增加的话，Windows就向磁盘写入新数据——显然，在游戏过程中生成更大的文件与平时改变设置是不同的，整个系统速度会被拖慢，有时甚至会因为内存和磁盘速度不同步导致非法操作。笔者在玩CS1.5版的时候就发现某个地图经常非法操作退出，同时发现硬盘灯狂闪，后来尝试把初始的虚拟内存增加到750M以上，游戏稳定度立马大大增加了。证明虚拟内存对这种任务的影响是蛮大的，建议空间足够的话，初始化数值设到800M以上，对游戏的流畅是有帮助的。 2、以播放欣赏视频为主的应用  视频应用也是个对硬盘空间胃口很大的主儿，不过你别因此认为也要像3D游戏一样把虚拟内存设的很大，尤其是WindowsXP的用户（XP称为页面交换文件）——笔者在使用过程中发现XP有个小毛病，就是虚拟内存设大以后，不会自动把不需要的空间释放，也就是说那个PAGEFILES.SYS会越来越大，尤其是播放了RM、ASF等视频流文件以后，如果你把虚拟内存和XP放在同一分区，Windows经常会提示你虚拟内存设的太小，或是磁盘空间不足要清除不需要的垃圾文件云云。此时查看一下那个页面交换文件，已经有1G了；还有，如果你不是用FTP工具下载文件，用IE直接点链接的话，XP也会先把数据临时存放到Windows\TEMP目录里，也是经常不会自动删除。所以你会发现安装XP的分区越来越小，建议播放视频文件的XP用户，又没条件为虚拟内存设置专门分区的，把初始数值设小一点，提示空间不足的警告出现的机率会小一点。当然，最根本的办法还是转移虚拟内存的存放分区，或是用PQ为XP分区增加更大的空间。三、虚拟内存其他方面的影响  有很多新接触电脑的朋友，是使用Windows98的。Windows98中的虚拟内存名字叫WIN386.SWP，默认是在C盘根目录下，没有隐藏属性，一般是会自动根据需要变化大小的。新手们往往不知道这个文件是什么东西，有人甚至尝试删除它，结果在DOS里删除了又重新生成，GUI里却删除不了，以为是中了病毒，于是就跑到论坛上求救。笔者也见过运行了PHOTOSHOP，期间在资源管理器中企图把WIN386.SWP删除，结果死机的人，所以这个虚拟内存影响还是蛮大的，要是你吃不准，不要乱删文件，就让Windows自己处理好了。后来微软也学乖了，把虚拟内存改名为PAGEFILE.SYS，并隐藏起来，免去了很多麻烦。  可见，用电脑掌握一点必要的常识，以及做好备份是很重要的。例如论坛上每天有人求救关于Windows损坏、优化过度系统崩溃和硬盘分区不见了的问题，如果你稍微知道一点系统维护的常识，有了GHSOT备份及分区表备份，是很容易搞定的小事——当然更不会以为WIN386.SWP或PAGEFILE.SYS是病毒或木马闹的人笑话你了，呵呵。   什么是虚拟内存？   虚拟内存是Windows XP为作为内存使用的一部分硬盘空间。即便物理内存很大，虚拟内存也是必不可少的。虚拟内存在硬盘上其实就是为一个硕大无朋的文件，文件名是PageFile.Sys，通常状态下是看不到的。必须关闭资源管理器对系统文件的保护功能才能看到这个文件。虚拟内存有时候也被称为是“页面文件”就是从这个文件的文件名中来的。   设置硬盘   优化虚拟内存，为什么要进行硬盘设置？这是因为虚拟内存文件（也就是常说的页面文件）存放在硬盘上，提高硬盘性能也可以在一定程度上提高内存的性能。   1. 启用磁盘写入缓存   在“我的电脑”上单击鼠标右键选择“属性->硬件”，打开设备管理器找到当前正在使用的硬盘，单击鼠标右键选择属性。在硬盘属性的的“策略”页中，打开“启用磁盘上的写入缓存”，如图 1。   这个选项将会激活硬盘的写入缓存，从而提高硬盘的读写速度。不过要注意一点，这个功能打开后，如果计算机突然断电可能会导致无法挽回的数据丢失。因此最好在有UPS的情况下再打开这个功能。当然，如果你平常使用计算机时不要进行什么重要的数据处理工作，没有UPS也无所谓，这个功能不会对系统造成太大的损失。    甲方：我在Windows XP操作系统中运行一款3D游戏时，却突然看到系统托盘区中弹出“虚拟内存不足”这样的提示。联想到以前也曾出现过此种问题，我该如何去解决呢？（点击查看更多软件使用技巧）   乙方：虚拟内存是将一部分硬盘空间来充当内存使用，虽然硬盘的运行速度不能与内存相比，可是容量却要比内存的容量高出许多。其作用在于可将一些读取到内存中却暂时不用的数据转移到虚拟内存中，这样便可释放出内存的空间，将有限的内存空间去继续存放未被读取的数据。  当出现虚拟内存不足的提示时，若不加以解决，那么便会影响到系统运转的效率。此时将虚拟内存的初始值和最大值设置为同一值，这样就可以大大提高系统的性能。   丙方：乙方所说的解决方法有误。这是因为如果将虚拟内存的初始值和最大值都设为两个相同的数值，那么在初始页面文件很大的情况下，也许正好会读取内存中一个容量较小的数据文件，这样它在虚拟内存中所占比例就越低，执行的速度也就越慢。而如果虚拟内存的初始页面很少，那么当数据超过初始页面文件的容量时，就会自动溢出到最大页面文件，但由于最大页面文件的容量与初始页面文件的容量相同，这样发生内存溢出的错误也在所难免了。  所以我们在设置虚拟内存大小时，应当将初始页面文件设得较小的容量，这样才能在内存中尽可能地存储更多数据，使其效率提高，同时也应提高最大页面文件的容量，防止“虚拟内存不足”的提示再次出现。  以上所述的是设置虚拟内存的基本原则，而若是要设定具体的虚拟内存容量大小，那么不妨采用下面两种方法：  第一种方法比较简单。  依次点击系统菜单“开始→控制面板”，在“控制面板”窗口中双击“系统”组件，单击窗口上的“高级”选项卡，在“性能”区域中的单击“设置”按钮。在打开的对话框中点击“高级”选项卡，单击“虚拟内存”区域中的“更改”按钮以进入虚拟内存设置窗口。   在窗口的“驱动器”栏目中选中分区盘符。由于硬盘读取数据是靠磁头在磁性物质上读取，而系统盘中有许多系统文件，若虚拟内存的页面文件也位于系统盘上，页面文件必然不连续，磁头来回读取就会影响系统性能，所以我们可将虚拟内存文件设定在一个非系统分区的单独分区中。  然后在“所选驱动器的页面文件大小”区域中点选“自定义大小”选项，分别在“初始大小”、“最大值”栏目中填入相应的数值即可。  根据微软公司的建议，虚拟内存交换文件最小值应设为内存容量的1.5倍，不过若内存容量是512MB甚至1GB，那么它所占用的空间肯定也不少。因此当内存总容量在256MB以下，就将虚拟内存的最小值设置为1.5倍；在512MB以上，设置为内存容量的一半；介于256MB与512MB之间的就设为与内存容量的相同值。  第二种虚拟内存的设置方法略嫌复杂，不过针对性更强。  首先运行电脑中经常使用的应用程序，然后打开“Windows任务管理器”窗口。单击窗口“性能”选项卡，在出现的页面中可显示出“物理内存”和“认可用量”。其中“物理内存”的“可用数”若小于物理内存的实际容量，则表示当前的物理内存够用。而倘若“认可用量”区域中所显示的“总数”、“峰值”等数值都超过了虚拟内存现有的容量大小，那么此时就可进入虚拟内存设置窗口，将虚拟内存的“初始大小”值与“总数”、“峰值”数值相近的容量即可。页面文件的设置   页面文件的大小计算   对于不同的计算机而言，页面文件的大小是各不相同的。关于页面文件大小的设置，有两个流传甚广的“公式”，“物理内存X2.5”或者“物理内存X1.5”。这两种计算方法固然简便，但是并不适用于所有的计算机。设置页面文件大小最准确的方法是看看计算机在平常运行中实际使用的页面文件大小。   通过Windows XP自带的日志功能可以监视计算机平常使用的页面文件的大小，从而进行最准确的设置，具体步骤如下。   一、在“我的电脑”上单击鼠标右键，选择“属性->高级”，单击“性能”下面的“设置”按钮，然后选择“高级”页，单击“虚拟内存”下方的“更改”按钮。选择“自定义大小”，并将“起始大小”和“最大值”都设置为300M，这只是一个临时性的设置。设置完成后重新启动计算机使设置生效。     二、进入“控制面板->性能与维护->管理工具”，打开“性能”，展开“性能日志和警告”，选择“计数器日志”。在窗口右侧单击鼠标右键选择“新建日志设置”，如图 4。     三、随便设置一个日志名称，比如“监视虚拟内存大小”，如图 5。     四、在“常规”页中单击“添加计数器”按钮，如图 6。     在“性能对象”中选择“Paging File”，然后选中“从列表选择记数器”下面的“%Usage Peak”，并在右侧“从列表中选择范例”中选择“_Total”。最后单击“添加”和“关闭”按钮，如图 7。   五、别忘了记住“日志文件”页中的日志文件存放位置和文件名，我们后面需要查看这个日志来判断Windows XP平常到底用了多少虚拟内存，在这个例子中，日志文件被存放在D:\Perflog目录下，如图 8。     另外还要设置“日志文件类型”为“文本文件”，这样便于阅读，如图 9。     这时你可以看到刚才新建的日志条目前面的图标变成了绿色，这表明日志系统已经在监视虚拟内存了。如果图标还是红色，你应该单击鼠标右键选择“开始”来启动这个日志。   过一段时间后打开这个CVS文件，我们可以看到如下内容的条目，如图 10。    这个日志文件记录这一段时间中页面文件的使用情况，注意这里的单位是%，而不是MB。通过简单的计算，我们就可以得到页面文件的最小尺寸，公式是“页面文件尺寸X百分比”。比如这个例子中，虚拟内存最大的使用比率是31%，300MBX31%=93MB，这个值就是虚拟内存的最小值（注意，300MB是前面的设置的临时值）。   如果物理内存较大，可以考虑将页面文件的“起始大小”和“最大值”设置为相等，等于上一步中计算出来的大小。这样硬盘中不会因为页面文件过渡膨胀产生磁盘碎片，其副作用是由于“最大值”被设置的较小，万一偶然出现虚拟内存超支的情况，可能会导致系统崩溃。   设置页面文件   现在回到“虚拟内存”的设置对话框中选择自定义大小并按照上面的计算结果分别设置“初始大小”和“最大值”，如图 11。这里我们将“初始大小”设置为91M，而将“最大值”设置成了200M，这样比较保险。     对页面文件进行碎片整理   Windows XP运行时需要大量访问页面文件，如果页面文件出现碎片，系统性能将会受到严重影响，而且会缩短硬盘的使用寿命。所以我们很有必要对页面文件定期进行碎片整理。   不过别忘了，页面文件是系统关键文件，Windows XP运行时无法对其进行访问。所以对它进行碎片整理并不是一件容易的事情。我们有两种方案可以选择，一是安装Windows双系统，然后启动另外一个Windows对Windows XP所在的分区进行碎片整理。二是使用专门的工具软件，比如System File Defragmenter等。