董师傅茶坊(29)

技巧与实践

话题馆

大内存环境下,如何设置虚拟内存

本期嘉宾:刘晖(微软最有价值专家)

禁用虚拟内存可提升系统性能?

Q:在内存较小的年代,设置虚拟内存的必要性大家都比较清楚。现在内存的价格越来越便宜,很多朋友都用上了1GB的内存。在大内存环境下,是否可以完全禁用虚拟内存,以提高系统性能呢?

A:要了解这个问题,首先得明白什么是虚拟内存,以及虚拟内存有什么作用。在早期,因为内存价格非常昂贵,因此一般电脑上都不会配置太多。此时如果操作系统和应用程序需要的内存数量超过了计算机中安装的物理内存数量,操作系统就会暂时将不需要访问的数据通过一种叫做“分页”的操作写入到硬盘上一个特殊的文件中,从而给需要立刻使用内存的程序和数据释放内存,这个位于硬盘上的特殊文件就是分页文件(也就是虚拟内存文件,或叫做交换文件,Windows 2000/XP/2003中的分页文件名为pagefile.sys)。

而硬盘和内存的速度有天壤之别,因此有朋友认为,在内存较大的条件下,可以禁用虚拟内存,这样系统就不需要花时间将内存中的数据分页到硬盘上,从而提高系统的运行效率。

然而根据传统的设计,Windows 的许多核心功能都需要使用分页文件,如果你禁用了所有分页文件,有些第三方的应用软件就可能会遇到内存不足的错误。其实在不需要的时候,Windows并不会使用分页文件,因此这样调整系统,并不能获得任何性能上的提高。

设为物理内存的1.5~2倍最合理?

Q:看来虚拟内存的设置是必须的。设置虚拟内存时,一般都建议将虚拟内存设置为物理内存容量的1.5~2倍(分别为虚拟内存的最小值和最大值)。这样设置是否合理呢?

A:在讨论这个问题之前首先看两种情况:有两台电脑,除了内存,其他所有配置都相同。电脑A拥有128MB内存,电脑B拥有1GB内存,这两台电脑都运行Windows XP操作系统。

按照这个观点中的方法设置,电脑A的虚拟内存将会设置为192MB~256MB,而电脑B的虚拟内存将会设置为1.5GB~2GB。而在实际使用中,电脑A很可能会在运行大型软件或游戏时产生虚拟内存不足的问题,而电脑B则可能会因为设置了如此大的分页文件而导致硬盘空间的浪费。

如何确定合理的虚拟内存大小?

Q:这么说来,所谓的1.5~2倍只能是一个指导性的意见,而具体应该设置多大,还要看系统的实际应用情况?

A:的确如此,按需设置虚拟内存才是科学的。我们可以借助Windows 2000/XP/2003中的性能监视器来判断虚拟内存的大小是否合理。

在“运行”中输入“perfmon.msc”,展开左侧的“性能日志和警报”,双击“记数器日志”,在右侧空白处点鼠标右键,选择新建日志设置,命名为Page File,回车确认,会出现图1所示的窗口。

点击“添加记数器”按钮,在弹出窗口的“性能对象”下拉菜单中选择Paging File,在“从列表选择记数器”中选择“% Usage Peak”,在范例中选择“_Total”,点击“添加”按钮,最后关闭这个窗口。

点击图1中的“确定”按钮,点击“是”创建日志文件。接着打开“日志文件”选项卡,在日志文件类型下拉菜单中选择“文本文件(逗号分隔)”,然后记住“例如”框中显示的日志文件的路径。

29-g10-1.jpg
图1

点击“确定”后这个记数器已经开始运行了,你可以在电脑上进行你的日常操作,并尽可能多地打开和关闭各种经常使用的应用程序和游戏。经过几个小时的使用,基本上记数器已经可以对你的使用情况作出一个完整的评估。

接下来在记数器日志窗口中,选中新建的Page File记数器,然后右键点击,选择停止。用记事本打开日志文件,你看到的结果应该跟图2类似。

29-g10-2.jpg
图2

我们根据这幅图一起来分析一下分页文件的使用情况。需要注意的是,在日志中的数值并不是分页文件的使用量,而是使用率。也就是说,根据日志文件的显示,该系统一般情况下的分页文件只使用了25%左右,而系统当前设置的分页文件足有2GB,那么为了节省硬盘空间,完全可以把分页文件最大值减小为512MB大小。而对于最小值,可以先根据日志中的占用率求出平均占用率,然后再与最大值相乘,就可以得到了。

虚拟内存设置的分区有讲究?

Q:很多朋友认为,虚拟内存设置在哪个分区上也很有讲究,会影响到系统的性能,你是怎么看待这个问题的?

A:如果你有超过一块硬盘,那么最好能把分页文件设置在没有安装操作系统或应用程序的硬盘上,或者所有硬盘中速度最快的硬盘上。这样在系统繁忙的时候才不会产生同一个硬盘既忙于读取应用程序的数据又同时进行分页操作的情况。相反,如果应用程序和分页文件在不同的硬盘上,这样才能最大程度降低硬盘利用率,同时提高效率。

当然,如果你只有一个硬盘,就完全没必要将分页文件设置在其他分区了,同一个硬盘上不管设置在哪个分区中,对性能的影响都不是很大。

会客厅

无法安装任何软件

Q:最近我的系统好像出了问题,不能安装任何软件,把我急坏了!每次安装软件都出现“不能访问Windows Installer服务……”的提示。我的系统是Windows XP SP2。

A:天热容易上火可别着急,这个问题不难解决,可能是由于Windows Installer相关文件被破坏了。你可以参考《电脑报》曾经发表过的一篇文章中的办法进行修复:http://article.pchome.net/2004/06/16/20963.htm。如果问题依旧,你也可以重新安装SP2补丁文件(下载地址:http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=049C9DBE-3B8E-4F30-8245-9E368D3CDB5A)。问题解决后,董师傅推荐你从如下网址下载最新的Windows Installer 3.1并安装:http://www.microsoft.com/downloads/details.aspx?FamilyID=889482fc-5f56-4a38-b838-de776fd4138c&displaylang=zh-cn&Hash=PFN7S94。

转移输入法的自定义词组

Q:我想把原来Windows 98 系统中的王码五笔(86版)输入法和智能ABC输入法的自定义词组导出来,以便在新的Windows XP系统中继续使用这些自定义词组,请问该如何操作?

A:王码输入法的自定义词库文件是winwb86.emb,在Windows 98中,通常存放在c:\windows\system下,直接拷贝到Windows XP系统的c:\windows\system32下即可。

智能ABC输入法自定义词库文件是tmmr.rem、user.rem,存放在c:\windows\system。把这两个文件覆盖到Windows XP系统:c:\documents and Setings\username\Application Data\Microsoft\IME\winabc就可以了!

解决Office 2003的启动故障

Q:我在Windows XP SP2下安装了Office,最近出现问题:每次打开保存的Word文档时就提示“打开对话框时打开命令无法执行”,确定后可以继续使用Word。在Word中打开对象,比如公式、图像、流程之类的就会出现“用户没有访问权”,快帮帮我吧,董师傅。

A:别着急。可以肯定你安装了2003年以前出的老版本的病毒查杀程序,当打开Word时,这些老版本的杀毒程序会检测随Word启动的宏,而由于杀毒程序太老,和新版本的Office有冲突,因此就会出现这样的问题。建议你升级杀毒软件到最新版本或在杀毒软件中禁用Office插件。

不再让 PowerPoint无功而返

Q:我用PowerPoint 2003制作一个幻灯片时,突然自动退出,同时屏幕提示“PowerPoint出现错误,请保存当前文件”,但点击“确定 ”保存后,却无法打开此文件,系统提示“PowerPoint无法打开此文件,注册转换器无法找到,可能需要重新安装”,可我已经编辑了这么多内容,并且也没有备份,怎么办呢?

A:默认情况下,Microsoft Office 转换器包会安装所有适用于已安装的 Microsoft Office 产品版本的文本转换器和图形过滤器,在转换过程中,会占用过多内存,如果你的虚拟内存设置偏小或转换器出错,就可能会出现上述情况。建议首先增大虚拟内存(设置时选择Office软件所在的驱动器),然后将Office光盘放入光驱中并运行安装程序,选中“转换器”并安装;最后到临时文件夹中找到与制作文件名相同而扩展名为.tmp的PowerPoint临时文件,将其扩展名改为.ppt后再用PowerPoint打开。

AutoCAD能一式多份打印

Q:近日发现AutoCAD有一个不能容忍的Bug,就是不可以像Word一样打印一式多份,也就是说在AutoCAD的打印对话框中,不能由用户选择打印多少份,一次只能打印一份。请问董师傅有没有好的方法?

A:打印机驱动程序一般都提供了设置打印份数的选项,以HP LaserJet 1000激光打印机为例,进入“我的电脑→打印机”,在“HP LaserJet”图标上点右键选“属性”,在弹出的对话框中选择“打印机属性”,再选“基本”,那里有一个“份数”设置框,在设置框中输入要打印的份数如“4”,最后关闭所有对话框,然后到AutoCAD中进行打印,就可以发现,打印机自动打印了四份图纸。记住打印完以后,要将打印机的属性改回去,不然用其他软件打印时也会打印出4份的。

电脑开机就报错怎么办

Q:我的电脑刚一启动就出现一个错误报告“加载C:\PROGRA~1\3721\helper.dll时出错,找不到指定的模块。”恳请董师傅帮一下忙!

A:董师傅一定不会让你失望的!这个问题显然是由于3721网络实名卸载不充分造成的。最简单的解决办法就是从3721网站上下载最新版的网络实名进行安装,安装成功后,再用它自带的卸载程序正常卸载即可。如果你对注册表很熟悉,也可以直接手动删除:首先从下面的键值中删除与3721有关的加载项:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run;然后再用关键字3721和cns来搜索整个注册表,将搜索到的项目全部删除;最后重新启动再将C:\Program Files\3721目录整个删除即可。