董师傅茶坊(30)

技巧与实践

话题馆

我们需要内存优化软件吗?

董师傅:目前内存优化软件相当多,多数软件都称能释放内存,以更合理地分配内存,提高系统运行效率。那么使用内存优化软件是否有必要呢?

赵聪:无论是程序运行过程中或是退出程序后,使用内存优化软件后,可以看到可用内存数会增加,也就是说内存优化软件确实释放出了一部分内存,因此我认为内存优化软件有助于提高系统运行效率。

刘晖:任何程序,只要被执行,就会占用一定的内存空间,如果程序并没有退出,怎么能释放内存呢?我们可以做个测试(测试用的系统安装了1GB内存,操作系统为WinXP+SP2)。

点击Windows任务管理器的进程选项卡,在“查看”菜单下选择“选择列”命令,勾选“虚拟内存大小”一项。打开一些比较耗费资源的程序。在仅打开一些内容,不进行任何操作,并等待一分钟的情况下,待系统稳定后,查看上述程序占用的物理内存和虚拟内存的情况(如图)。

30-g6-1.jpg

接下来在这些程序中进行一些操作,如统计Word文档字数等,然后打开内存优化软件(我使用的是RAM Idle Professional)进行整理工作,经过将近20秒的等待(在这期间CPU占用率持续100%),释放工作进行完毕。

释放过内存后,查看这些大型程序占用的物理内存数和虚拟内存数,并和上图中的数值对比,可以发现,物理内存的占用确实在短时间内有所减少,但随时间流逝,这些程序占用的内存数量又开始增加,而且增加速度很快,基本恢复到上图中的水平。我测试了Memory Zipper Plus、Free RAM等其他四个内存优化软件,结果基本类似。

所以我认为,使用内存优化软件毫无意义,相反还会带来副作用,即经过整理后,在应用程序的窗口之间切换时会变得很不流畅。

赵聪:如果说程序运行中的整理效果不太容易看出来,那么退出所有程序后再整理,这个效果就很明显了。我测试时内存优化软件大概释放出了70MB左右的内存,而且2分钟后,内存的使用数都没有增加,很显然,这能证明内存优化软件的确有效。

刘晖:这个看怎么理解了。Windows有一种缓存机制,当第一次运行某个程序时,运行程序所需的文件和数据都要从硬盘加载到内存中,但退出这个程序时,加载到内存中的某些数据并不会消失,而是会作为系统缓存继续存在。因为系统缓存中保存了大量以前曾经载入到内存中的数据,因此当你第二次运行同一个大型程序的时候就会感受到,程序的载入速度比第一次快了很多。

一般情况下,系统会把所有空闲的内存分出一部分来充当系统缓存(即Windows的任务管理器的性能选项卡下“物理内存”一栏显示的“系统缓存”),而另一部分就空闲着,随时等待被程序使用。同时,如果在运行大程序的时候需要大量内存,系统还会按照实际需要把缓存清空一部分,供程序使用。

因此,即使在程序退出后,也没有必要整理内存,否则会出现因清理了系统缓存中的内容,导致再次运行同样的程序时,加载时间变长的情况。

董师傅:我也赞成刘晖的观点。Win9X系统本身在内存管理上存在问题,当时内存整理软件还有一些作用。但基于NT技术的Windows系统在内存管理上得到了极大提高,而且存在内存泄露Bug的应用软件也比较少了,因此根本没必要使用内存优化软件了。

而且有些可以在内存占用达到一定程度之后自动释放内存的优化软件,会让本身就已经很繁忙的计算机雪上加霜。试想一下,当物理内存可用数急剧减少时,具备这种功能的内存优化软件开始自作聪明,把占用内存的数据往硬盘上进行分页,而程序的运行需要这些数据,这可能导致在同一时间内,“优化软件”试图将数据分页到硬盘,而操作系统试图将数据从硬盘读取到内存,因此会增加硬盘的负荷。

因此不要过于看重任务管理器里显示的可用内存的数量,如果你注重的是使用过程中的性能体验,那么最好不要干涉Windows的内存管理,让Windows自己管理就行了。这样虽然看起来内存的“可用数”没有被优化软件释放之后的多,但运行起来的整体效率却要高不少。

关于这个问题,如果你有不同的见解,可以登录《电脑报》论坛,在“软件答疑区”的置顶帖中参与讨论。

会客厅

修改FTP服务的密码

Q:我在系统中安装了IIS服务,想使用FTP来进行文件共享。在“FTP站点属性→安全账户”中修改FTP服务的密码时,我发现密码总是改不了,设置成别的密码,如123,按确定后,密码会自动变为10位,我真的不知道这是怎么回事,请董师傅务必帮我一下。

A:实际上IIS里面的FTP服务的密码是可以修改的,它和Windows账户密码是一致的。至于在“FTP站点属性→安全账户”下的密码显示,是用于匿名访问的。微软从安全的角度出发,当你点击确定按钮以后,编辑框的密码的确会变成10位,但不等于说你输入的密码已经变成10位了,这样做是为了防止有人使用星号探测工具探测出真实的密码是多少。

提示hal.dll文件损坏或丢失

Q:我在Win2000 Server 下覆盖安装WinXP后,双系统菜单没有了,我改了BOOT.INI文件,重新启动进入Win2000 Server 后,出现“以下文件损坏或丢失,Windows无法启动:\system32\hal.dll,请重新安装以上文件的拷贝”的提示,请问董师傅,这是怎么回事?

A:很明显,这是因为BOOT.INI文件格式错误导致的问题。当BOOT.INI文件格式错误时,系统默认从系统盘引导,如果没有发现有系统文件,则会显示这个出错的信息。关于具体的解释,在微软KB知识库里面有详细的介绍,网址是:http://support.microsoft.com/kb/314477,方法1和方法2适用于你的问题。

日文软件显示为乱码怎么办

Q:我在中文WinXP上安装了一个日文词典,但显示的是日文乱码字符。系统还原后就正常了。但我学习的时候要使用这个日文软件,我现在不敢安装它了,因为我的还原点已经用完。

A:不用着急,董师傅自有解决这个问题的妙计。你可以打开“控制面板→区域和语言选项”对话框,在“区域选项”里面将所有设置都设置为日本/日文,在高级里面将非Unicode程序的语言设置为日文,重启以后就应该能够很好地显示日文软件了。另外,也可以试试安装Microsoft AppLocale Utility,这个工具也可以解决一部分语言不同的软件使用问题。

在WinXP中运行16位程序的问题

Q:我在工作中经常要用到几个Fortran语言编写的DOS程序,这些程序在Win98下能正常显示汉字,在WinXP SP2下能运行,但不能显示汉字,严重影响程序的正常使用。请问我该怎么办?

A:这是正常的现象。对于16位程序来说,要想在Win2000/XP/Server 2003里面显示中文,需要使用中文外挂程序如CCDOS等。

Fireworks为何启动太慢

Q:我在打开Fireworks MX2004时,不知怎么搞的,可能因为同时打开的程序太多,Fireworks出现了问题,以后每次启动都很慢,而且启动后CPU占用率是100%,机器速度缓慢,关闭软件后CPU占用率恢复正常。 我把Fireworks卸载后重装,问题依旧;我又不想重装系统,董师傅有办法帮我解决这个问题吗?

A:Fireworks MX2004本身启动是比较缓慢的,特别是没有安装Fireworks MX 2004升级程序的时候。Fireworks MX 2004 7.0.2升级程序改善了启动速度的问题,升级程序可以在 Macromedia网站上下载。建议你安装这个程序看能否解决你的问题。

winmgmt.exe报错怎么办

Q:我使用的是Win2000操作系统,最近我的电脑运行一分钟左右就会跳出“winmgmt.exe正在创建错误日志”的提示,且屏保设置失灵,如何解决这个问题?

A:winmgmt.exe是用于管理WMI组件的一个核心程序。产生这个问题的原因有很多。微软KB知识库对这个问题提供了一个解决方法,具体操作细节可以查看http://support.microsoft.com/?id=298130上的说明。

提示无法找到Mousel.dll组件

Q:我在打开电脑的时候,老出现“无法找到的组件,没有找到Mousel.dll,因此这个应用程序未能启动,重新安装应用程序可能会修复此问题”。但我搜索了,没有找到它,每次开机它都会弹出来的,很烦的,请问怎么解决这个问题?

A:Mousel.dll不是系统默认的文件,出现这个问题是因为系统在启动的时候会加载一个第三方软件,而这个第三方软件需要Mousel.dll文件的支持,如果找不到Mousel.dll文件,则会提示这个错误。你可以使用系统配置管理程序msconfig.exe对你的系统启动项进行一些配置,禁止所有的非默认启动项。

所有程序无法运行了

Q:我的电脑不知道怎么了,能正常启动,但是就是打不开文件,如Word,Excel,各种应用程序也打不开,双击就出现找不到程序或是Rundll.exe找不到的提示,会出现选择打开方式的窗口,而且里面没有可执行程序的选项,还有就是开始项中所有程序及各种系统工具都打不开。请问我的电脑怎么了。

A:很明显,你的电脑中文件关联已经损坏了。文件关联损坏常常是计算机病毒造成的,目前网络上有很多相关修复工具,相对来说,System Repair Engineer 支持的修复格式是比较齐全的,这个工具可以在 http://www.KZTechs.com/sreng免费下载到。如果你需要修复的是EXE文件关联,需要将System Repair Engineer的可执行文件改名为SREng.COM,否则你无法启动System Repair Engineer。

如何和单机进行网络通讯

Q:最近在使用VMWare时遇到了一个奇怪的问题:在单位局域网中,利用默认设置,安装好虚拟机的操作系统后,就能和网络上其他机器进行通讯。但在家里怎么设置都不行,已确认网络TCP/IP设置正确,请董师傅帮我解决这个问题。

A:VMWare确实是个好东东,董师傅可是从VMWare 2.0一直玩到今天的5.0 ^_^。要解决这个问题,就在虚拟机上选择你要设置的虚拟系统,保证这个虚拟系统已经“关闭”,点左边的“Edit virtual machine settings”,在“Device”一栏下选择“Ethernet”,右边Network conection下有4个选项,默认情况下通常是第一个“Bridged:”,这是在有物理网络连接情况下才用的,由于你是单机下使用,所以应选择第4个“Custom: Specific virtual network”,选择VMnet1(Host-only),然后在安装虚拟机的主机上查看VMnet1的IP信息,如172.16.74.1,在虚拟机上就可以ping通这个主机。对于VMnet1设备,VMWare软件已经开通了DHCP服务,所以虚拟机的IP地址在你启动虚拟机后就分配好了。接下来就只需要按局域网的情况来看待主机和虚拟机了。