不管你用的是什么操作系统,内存子系统总是重点优化的对象。因为它不仅直接影响RAM的性能,还决定了其它子系统之间的通信能力,进而影响整个系统的性能。Windows 2000是一个基于"性能"的操作系统,所以充分挖掘内存子系统的潜力是非常必要的。在本文中,我们要给大家介绍如何给操作系统消肿和优化注册表,以达到改进系统性能的目的。不同的方面有不同的优化方法,我们首先从BIOS的优化开始(BIOS的优化对所有操作系统有效);然后是其它一些优化。
要注意在进行优化的时候,要以Administrator注册,否则修改无效。
BIOS优化
在BIOS中有若干个与内存有关的选项,下面我们就给大家介绍几个最常用的:
CAS Latency-CAS延迟是一个决定系统内存列存取时间的参数。CAS延迟越小,系统在读取RAM中不同数据时的速度就越快。现在大多数SDRAM CAS延迟标称值为3,但基本上都可以达到2。在市场上也有标称值为2的SDRAM。至于 RDRAM,它的CAS延迟要比SDRAM大得多,如果把CAS延迟设小一点效果非常显著。不过要注意的是改变CAS延迟实际上是一种超频,要注意它的稳定性(可以运行如timedemo loop之类的稳定性测试软件)。
RAS To CAS Delay-这项设置指的是行激活命令到读/写命令之间的时间。这个值越小表示越快,在修改它时,也要注意系统的稳定性。
RAS Precharge Time -这项设置指的是DRAM预充电需要多少个周期的时间,越小越好。在修改它的时候,同样要注意稳定性。
SDRAM Precharge Control-这项设置指的是系统如何管理SDRAM的预充电时间,它有两个值Enabled和Disabled,在不同的系统上有不同的结果,建议在你自己的系统上两者都试一下。
Shadow System BIOS-如果它为Enabled的话,在系统启动时会把BIOS中的内容拷贝到主内存中,对大多数机器来说,启动速度和运行速度都会加快。
System BIOS Cacheable-当设为Enabled时,在必要时系统会把BIOS中的内容备份到L2缓存中,加快BIOS的运行速度,效果比Shadow System BIOS还要好。当Shadow System BIOS也设为Enabled时,效果最佳。
注册表修改
在注册表中有若干个关于内存的设置,但在修改时要注意,因为稍有错误就会导致系统崩溃。所以在修改前要把注册表作一个备份,以备在出现问题是恢复。
首先在注册表中找到[HKLM/System/CurrentControlSet/Control/Session Manager/Memory Management],然后你会发现下面几个选项:
DisableExecutivePaging -设为Enabled时, Windows 2000在运行可执行文件时不用硬盘上的交换文件,这样操作系统和文件执行的速度会更快。但我们推荐只有在系统内存大于128MB时,才将它设为Enabled,因为它也要占用一定的系统资源。在默认状态下,它的值为0(Disabled),如果要设为Enabled就将它设为1。
LargeSystemCache -当它设为Enabled时(服务器版的Windows 2000默认设置为Enabled),系统会把除了4MB(作为硬盘缓存)以外的所有内存都用作文件系统的缓存。Windows 2000会把自己的内核放到内存中,这样运行起来就更快。这项设置是动态的,如果在某些情况下硬盘需要更多的缓存,系统会释放一些内存给硬盘作缓存。在默认情况下有8MB内存是留作此用途的。
此项设置的主要好处就是可以使操作系统运行得更快,并且它还是动态的,当内存需求不大时,Windows 2000的内核就驻留内存;如果运行多个程序需要大量内存,Windows 2000会把它的内核从内存中释放出来。0表示Disabled,1表示Enabled。不过如果把它设为Enabled,系统会占用更多的内存,在一些任务很密集的情况下,系统性能会下降。根据Micorsoft的说法,对那些自己进行缓存的应用程序如Microsoft SQL,和需要大量内存才能得到最好性能的程序如IIS来说,此项设置最好设为0。
IOPageLockLimit -这项设置主要是服务器应用。如果设置合理,在进行大数据量的文件传送和类似的操作时,可以提升系统的I/O性能。但是如果系统内存不足128MB,那么这项设置不会有任何作用。如果系统内存超过128MB,可以把它设为8-16MB,性能的提升会比较明显。默认值是0.5 MB( 512 KB),在设置时要注意它是以字节数表示的,0.5MB为0.5×1024×1024=524288字节。在修改时,多设几个值试一试,以得到最佳效果。
禁止启动时运行程序
禁止启动时运行一些不必要的程序可以少占用一些内存。在Windows 2000中禁止启动时运行程序不像Windows 9x/Me中那样简单,必须要修改注册表。注册表中相关的项为[HLKM\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\RUN]。找到之后,就可以进行修改了。不过还是要先做好备份,以防出现错误。
性能选项
还有其它一些不需要修改注册表的方法可以优化Windows 2000,其中有一个就是应用程序反应时间(Application Response),这项设置决定前台程序是否比后台程序占用更多的处理器时间。在系统控制面板的高级页面(Advanced Tab)中选择性能优化(Optimize Performance)项,你就能找到应用程序反应时间(Application Response)设置。Application Response有两个值:一是前台程序优化(Optimize Performance for Applications);一是后台程序优化(Optimize Performance for Background Services)。如果选择前者,那么前台程序就会得到更多的处理器时间;如果选择后者,后台程序会得到更多的处理器时间,系统会根据后台程序的优先级(Priority level)给它们分配不同长度的处理器时间。
每个程序都有一个优先级,系统会根据不同程序的优先级来决定哪个程序更重要,需要先执行并分配更多的运行时间。程序的优先级由两部分组成:一是优先级类别(Priority Class)包括Real-Time, High, Normal, Idle四个值;二是线程优先级(Thread Priority)包括Time Critical, Highest, Above Normal, Below Normal, Lowest,Idle六个值。如下表所示:
Priority Class
Thread Priority
Real-Time
High
Normal
Idle
Time Critical
31
15
15
15
Highest
26
15
10
6
Above Normal
25
14
9
5
Normal
24
13
8
4
Below Normal
23
12
7
3
Lowest
22
11
6
2
Idle
16
1
1
1
删除POSIX 和 OS2支持
在微软的操作系统中都有对POSIX的支持,POSIX是一个多操作系统协同工作的标准;同样OS2支持是为了运行OS2上的应用程序。如果你的机器中没有别的操作系统,那这些东西根本就用不着,把这些东西删除可以节约一些内存。Microsoft没有提供屏蔽这些功能的方法,不过没有关系,首先去除Windows的文件保护(这部分的内容会在稍后的文章中介绍),找到winnt/system32目录,把OS2.exe,OS2SRV.exe,PSXSS.EXE,OS2SS.exe和 POSIX.exe这几个文件删除,就OK了。不过为谨慎起见,首先把这些文件改个名字,运行没有问题后,再删除它们。
一般来说把这些文件删除掉不会有任何问题,但在Windows 2000的资源包里的一些工具需要POSIX才能运行,这一点要注意。
删除无用的Windows组件
在安装Windows 2000时,安装程序没有很大的灵活性,有些不想要的东西也给你装上去了;或者是初次使用Windows 2000,不知道哪些有用,哪些没用,先一咕脑儿全装上去,等熟悉之后再把一些没有的组件删除掉,释放更多的系统资源。下面就给大家介绍一个可以打开几个隐藏选项的方法。用记事本打开sysoc.inf文件(在winnt/inf目录下),你会看到有几条以"HIDE"开头的命令,把"HIDE"删掉(注意不要把逗号也删掉了),保存退出重新启动系统,打开控制面板中的添加/删除程序,选择Windows安装程序栏,你就会发现比原来多了几个选项。
堆栈压缩
堆栈压缩也叫做内存碎片整理,在Win9x中早有应用。Windows 2000对内存的管理和Win9x完全不一样,这个操作有没有效还是个问题。不过不管怎么样我们还是介绍一下,内存碎片整理实际上是系统把主内存中所有的数据都捣到硬盘的交换文件上,然后重新把数据装入内存;从计算角度来看,这个过程叫做堆栈压缩或者叫垃圾清理。这个操作可以用一个很小的VB程序完成,具体做法是用记事本新建一个文件,输入一行:Mystring = Space(16000000),把它存为后缀.vbs的文件。假设在你的机器上已经安装了VB运行库(Windows 2000默认安装),当你运行这个程序,它会把系统内存"冲刷"一新。在运行完一些有内存"空洞"的程序之后(所谓内存"空洞"是指程序在运行完毕之后,还有一部分内存没有释放,不能被其它的程序使用,就好像内存中有个洞一样),运行这个程序特别有用,它可以释放那部分"空洞"内存。如果你的系统内存很大,可以把上面那条语句括号中的数值设大一点,清理内存"空洞"的效果会更好一点。