Windows 系统的性能优化的常见误区

Windows_generic_v_web_thumb有很多人有这么一个习惯:自己的操作系统用一定长度的时间之后,不管当前系统的状态如何,都会在这个时间点做这么一件事情:格盘重装系统——理由是重做系统之后会让系统变得更快。

那么,情况是不是这样呢?是,重做系统是比你重做系统之前要快。那么,原因是什么?
原因?不就是一个全新的系统了么?
对啊,那为什么你用了一段时间之后就变慢了呢?
用久了肯定变慢了吧……
是这样吗?应该说不是。

很多人认为自己的系统变慢通常是从这几点的感觉上来看的——

  1. 系统开机速度
  2. 软件打开速度
  3. 系统后台响应速度

我们先一个一个来说明吧。

系统开机速度的影响

我们有很多朋友看得开机速度是使用的如“360 安全卫士”或者“QQ 电脑管家”的开机时间的监控来计算这个时间的。

不过,这里其实有一个问题,他的开机时间监控的计算并不是真正从我们专业上来说的,我们先来比较简单的说一下这个技术性很重的问题吧,不过要说明的是,《深入解析 Windows 操作系统(第4版)》用了近 40 页说明这一问题,你可想而知,我把 40 页的内容缩成这么点会有什么效果……

我们说的开机启动,是由计算机读取引导扇区之后,切换到比如是 Windows XP 下面的 NTDLR 或者是 Windows Vista、7 的 bootmgr 的引导加载程序,然后读取想对应的启动盘(Windows 安装盘)下的注册表信息,然后初始化 Windows,加载驱动程序等和硬件相关的内容,之后开始加载运行 Smss、Csrss、Winlogon 这三个应用程序,这个时候 Windows 从专业的角度上来说已经是成功启动了。然后开始加载一下开机到桌面便需要启动的服务(设为“自动启动”的那些服务)或者程序(比如“explorer.exe”以及其他设置的开机运行的程序)。

我在上面不足 200 字的文字中间,其实说明了三处会导致开机到桌面影响速度的复数项的类别。它们分别是:硬件的驱动程序、自动启动的服务项和其他被标记设置为开机启动的应用程序。而在这些能加快开机速度的工具中下手进行处理的项目就是“服务项”和“开机应用程序”了。很多项目的禁用建议是根据软件提供商自己定义的,那么就不能排除不正当的竞争为因素,诱导用户关闭一些他原本想要的开机功能。这个特别在“一键优化”下特别有效。由于开机的时候少加载了部分数据,事实上却是会让计算机启动到桌面变快。但是,我说了一点,有些功能也许是用户自己想要的,被诱导关闭。比如用于 Windows 更新时下载 Windows 安全更新用的“BITS”服务(即便是盗版 Windows 用户,Microsoft 也不会通过安全更新来禁用用户使用非法拷贝的 Windows 功能。而 Windows 正版通知是有一个必见的许可协议步骤,不会默认被安装)。那么有些不适当的服务和开机就自动运行的程序被禁用,自然就会给很多用户造成一些不便。

1

那么最好的办法,就是你能够通过程序做到类似于“msconfig”系统配置实用程序这样,禁用一些你确定不需要用的非 Microsoft 服务和其他确实不是你开机就要用的应用程序。

驱动问题的优化?

那么接下来还有一个硬件驱动的问题了,这里还有一个引申的问题——覆盖或安装不同版本的驱动文件到同一个硬件上,需要先完全卸载原有驱动吗?不卸载的情况下会造成那个硬件运行不稳定吗?答案是否定的。

我们可以打开 Windows 的设备管理器看一下相关设备加载的驱动程序列表就能明白了。

88f51e1d1254

在图中,我列出的是我的 GT430 的驱动文件信息,当撞上新的驱动程序之后,“回滚驱动程序”选项就能被启用。如果说,我们装的驱动有问题,就可以用回滚到原来的驱动。回滚完成之后是需要重新启动计算机来加载另一套驱动的。所以,保险起见,“覆盖”安装时最好的办法,因为这样可以启用回滚。即便是卸载了,在重新启动的时候,Windows 其实也会不经过你的同意,在预先设置的驱动信息目录下去找到那个设备的驱动。除非你把相关的 .inf 文件删除。

而回过头来说性能优化。设备过多,在最初启动 Windows 的时候,确实会因为 Windows 不清楚你确定要使用什么设备而预先加载所有的驱动而浪费比较多的时间。但是在正常关机 2~3 次之后,Windows 会通过自己的预读优化记录(请记住这个,下面会用到),不再开机启动的时候加载你不常用的其他设备的驱动。因此,我们可以用这样的办法来让开机减少一些开机时间:比如开机的时候,不要就是开着打印机,这样就可以在开机的时候就不会加载打印机驱动了。

软件打开速度和系统后台响应速度

大家应该都知道,要想软件打开和运行速度快,那么可用的物理内存大小是决定性的因素。

2_thumb

虽然,Windows 在早期版本中引入了“虚拟内存”的概念,可以将内存中不使用的部分数据转移到硬盘中的指定文件中去,Windows NT 架构的当然是 pagefile.sys 了,通过这样来增加可用的物理内存数量。

而即便是这样,有时候我们的计算机仍然会出现响应慢速的状况。比如有以下的情况:

  1. 打开了一个需要内存空间极大的程序(要把大量不用的数据挤到硬盘去);
  2. 从硬盘中读取大量的原先被放入虚拟内存的数据回内存的时候;
  3. 有一个一直占用 CPU 资源的进程长久没有释放出 CPU 资源(CPU 长时间占用 100%)。

这些情况的问题的解决,都是很方便的,即便你的计算机经常出这样的问题,也不必要重做系统的。因为,当你系统恢复正常完毕之后,又做这样的事情,这种悲剧就会重演。

1 和 2,只要知道是内存问题,关闭或退出一些进程,让出一些内存就可以了。最佳的解决办法是增加物理内存——当然,32 位的操作系统只有总共 4GB 的内存地址,4GB 的物理内存不能完全被使用——这里面还有显卡显存的地址。

至于 3,那么就是需要把那个进程杀掉。如果经常这样,对于一般用户的话,可以首先考虑的是杀毒——当然不一定有效,可能是其他原因造成的。

但是,对于很多的盗版 Windows 的受害者而言,由于启动盘(Windows 的安装盘)的分区过小(XP 应该大于 20GB,Vista、7 应该大于 40GB,即便不在启动盘上安装大型应用程序),并且在盘中存放过多的数据,会导致页面文件被分割成散状,导致信息不是连贯的存放在硬盘之上,因此也会导致系统变慢。

那么,我们需要做这样的工作。磁盘碎片整理,通过磁盘碎片整理,能够把分散在不连贯位置的数据连接在一起,提高磁盘读写速度,降低 CPU 的等待时间,这样就能从根本上解决这样的问题。

5_thumb

而至于页面文件也被分裂得很惨的话,就只能把页面文件放到其他盘中,在你的系统盘中禁用页面文件的存放。

6

BAT 一键清除系统垃圾有效?

对于另外所传的“清除系统垃圾”来提速的方式,如果这样效果明显,Microsoft 早就在关机的时候把这个选项做成这样子了:

3

见高亮部分中的“关闭浏览器时清空‘Internet 临时文件’文件夹”。而且,在清理垃圾的批处理文件中,还看到了“del /f /s /q %windir%prefetch*.* ”这样的命令,这个 prefetch 就是 Windows 记录你的应用程序读取提速用的功能,而 cookies 是用于保存一些下次可以免登陆的信息的数据(比如论坛)。而其他临时文件的删除并不一定都有效果。

其实,Windows 自己就有一个磁盘清理工具,运行“cleanmgr”就可以打开它了,选择你要清理的磁盘后,就会看到这样的对话框:

4

Windows XP 与 Windows 7 类似,只要删除这些信息,才是真正还给你系统一个不带多余内容的环境,并且还能加速。