中华网通行证
用户名 密码
  科技动态 硬件广场 下载基地 网络教室 网络冲浪 科学博览 移动时代 手机上网 桌面壁纸 科技商情  

硬件优化漫谈之内存篇

2000-10-12 16:06:39

  首先要说明的一点是,所谓内存速度(如-10、-8或PC100或PC133等)实际上只是标明内存能稳定运行的最高速度的指标,而内存实际的运行速度取决于系统总线的速度,与任何软件无关,内存优化从本质上说是提高系统对内存的利用率。在内存价格非常昂贵的DOS时代,内存优化曾是很热门的话题。

  一、DOS下内存的分类和分配
  1.常规内存(ConventionalMemory)
  DOS为了保持对X86软件向前及向后的兼容性,始终维持着640KB的内存限制。这640KB勿需借助内存管理程序即可直接寻址的内存称为常规内存。这也是DOS系统下所有应用软件都可利用的区域。 2.上位内存区(UMAUpperMemoryArea)和上层内存块(UMBUpperMemoryBlock)
  紧邻常规内存上端的区域即UMA,其中包含ROM,一般留作系统硬件(如BIOS、视频等)使用,故称系统区域,最大384KB,在1M之内。8086/8088以上的系统的地址线寻址都能达到1M或更高,故也有将1M以内的内存叫常规内存的。其中的剩余空间即UMB。在386以上的系统中,通过在config.sys中设置:DEVICE=EMM386.EXE和DOS=UMB,即可使用UMB存放设备驱动、command等常驻内存程序。
  3.扩充内存(ExtendedMemory)
  随着CPU性能的提高以及程序对内存要求的增大,DOS对内存管理需要突破640KB的限制,但又要解决兼容性的矛盾,因此出现了扩充内存和扩展内存的概念。在286以上的系统中,采取线性的内存寻址方式直接存取1M以上的新增的内存称ExtendedMemory。通常,DOS是通过在config.sys中设置DEVICE=C:\DOS\HIMEM.SYS来使用ExtendedMemory,该驱动程序执行Lotus/Intel/microsoft/AST等公司共同制定的XMSExtendedMemorySpecification规范,以防止两个程序同时存取相同内存位置的情况。它主要用于Windows环境下系统和用户程序。在XMS中起始位置的64K称为高内存区(HMAHighMemoryArea)。可以通过在config.sys中设置DOS=HIGH,将MS-DOS的大部分程序从UMA中移至HMA中,以便用户有更多可用的常规内存。
  4.扩展内存(ExpandedMemory)
  在早期的8086/8088计算机中,超出由地址线直接寻址的,而由系统区域中的"页框"(Pageframe)间接存取的附加内存称ExpandedMemory。
  286以上的计算机都能够使用ExtendedMeory,且它比ExpandedMemory速度快,故当前的机种大部分是以增加ExtendedMemory的方式增加内存容量。但在286以上的计算机中运行一些老程序(如lotus1-2-3)时,需要ExpandedMemory。这时只要在config.sys中设置DEVICE=EMM386.SYS,利用ExtendedMemory模拟ExpandedMemory。DOS6.0以上的版本还可让扩展内存和扩充内存设置共享的内存,以增加使用上的便利和弹性。当程序需要ExpandedMemory中的数据时,EMM386.SYS先将数据由ExpandedMemory存入"页框",将"页框"中不再需要的数据回写到ExpandedMemory。

  二、DOS下内存的优化
  优化内存主要要达到两个目的,一是将常驻程序从常规内存移出,以便为其他DOS应用程序留出更多空间;二是提供扩展内存、扩充内存,供磁盘高速缓存、Windows及其它使用1M以上的程序使用。
  1.增加常规内存
  在DOS环境下发生"内存不足",大部分是因为常规内存不够用造成的。增加常规内存的措施,可以在config.sys中设置:
  DOS=HIGH将MS-DOS的大部分程序从UMA移至HMA
  DEVICE=C:\DOS\HIMEM.SYS使用ExtendedMemory
  LASTDRIVE=F减小最大驱动器符号(一个驱动器约占100B的空间)等
  2.增加ExtendedMemory
  在Windows3.X环境下发生"内存不足"提示,大部分是因为ExtendedMemory不足造成的。增加ExtendedMemory的措施有: (1)将autoexec.bat中的SMARTDRV命令后的参数改小,即减少分配给磁盘高速缓存器的空间;
  (2)在config.sys中设置EMM386.EXE MIN=0,即不保留模拟ExpandedMemory的ExtendedMemory,但在需要时仍能提供ExpandedMemory;或设置EMM386.EXENOEMS,即不使用ExtendedMemory模拟ExpandedMemory,只负责到UMB存取数据;
  (3)在config.sys中删除DOS=HIGH,将MS-DOS从HMA送回UMA。
  3.增加ExpandedMemory
  (1)用EMM386.EXE RAM使ExtendedMemory模拟ExpandedMemory。
  (2)尽可能减少分配给RAM盘之类程序的ExpandedMemory。
  4、将设备驱动程序装入上位内存
  为了提供更多的常规内存给其它应用程序使用,需将一些外部设备的驱动程序(如cdrom.sys)安装到上位内存区块(UMB),在Config.sys中可做如下配置:
  device=HIMEM.SYS
  device=EMM386.SYS NOEMS
  DOS=HIGH,umb
  DeviceHIGH=cdrom.sys
  5、将内存驱留程序装入上位内存
  将一些常用的内存驱留程序用loadhigh(LH)命令装入UMB,亦可节约基本内存,例如在Auoexec.bat文件中加入命令行:
  LH C:\DOS\DOSkey
  即可将用户普遍使用的DOSkey(键盘命令运行增强程序)加载到上位内存,可节省约3KB的基本内存。 6、建立RAM盘
  由于从内存中读取数据比硬盘中读取得快,对于频繁读取磁盘的应用程序及文件如字库文件、图形图像程序文件、字处理程序等,可用RAM盘加快运行。
  在Config.sys中设置RAM盘方法如下:
  DEVICE=C:\DOS\RAMDRIVE.sys/E1024
  其中使用/E参数,将RAM盘建立在扩充内存中,若加/A参数,则将RAM盘建在扩展内存中。因为访问扩充内存比访问扩展内存快,所以应尽量使用/E参数。
  从以上各类优化方法可以看出,在DOS下对内存优化,总是"拆东墙补西墙"以牺牲某一类内存的空间,给另一类内存腾出较多的空间。如要增加UMB的空间,是以减少ExtendedMemory的空间和将一些程序从UMB移至ExtendedMemory而实现的。所以,关键是根据自己的系统及使用情况灵活调整。
  从WIN95开始,操作系统全面接管了对内存的控制,操作系统对内存的使用自动进行优化,但这种优化并不是完美的,仍然可以采用其他方法进一步优化。

  三、优化"虚拟内存"
  随着软件技术的发展,软件对内存的需求大为增加,在运行大程序时,若机器中的物理内存不够用,系统会自动在硬盘上划出一个空间来建立一个虚拟内存文件,以弥补物理内存的不足,Windows操作系统在硬盘上创建的交换文件(Win386.swp),即通常所说的"虚拟内存"。 虽然可用硬盘来代替内存运行更多的程序,但硬盘的速度毕竟比真正的物理内存慢得多,其实质是"以时间换取空间"。
  关于交换文件的设置,Windows98(95)为用户提供了两种选择,即"让Windows管理虚拟内存设置"和"用户自己指定虚拟内存设置"。若选择前者(默认选择),则交换文件的大小是不固定的,从而造成它在C盘上呈碎片状存放。即使运行"磁盘碎片整理程序"也不能消除碎片,因为Windows98(95)启动后,交换文件始终是在用文件,所以不能进行整理。
  CPU与硬盘交换数据的速度本来就比与物理内存交换数据的速度要慢,如果交换文件在硬盘上不连续存放,速度将进一步降低,必然会影响整机的运行速度。因此,可以选择"用户自己指定虚拟内存设置",通过将交换文件设置成大小固定,且在硬盘上连续存放的文件,达到优化虚拟内存,提高整机运行速度的目的。具体步骤如下:
  1.用鼠标右键单击桌面上的"我的电脑"图标,然后单击"属性"选项,在"系统属性"对话框的"性能"选项卡上,单击"虚拟内存"。
  2.在"虚拟内存"对话框上,选中"用户自己指定虚拟内存设置";在"硬盘"框中,选定为D盘,然后单击"确定"。
  3.重新启动电脑,交换文件已移到D盘上。启动"磁盘碎片整理"程序,整理C盘。
  4.在上述的"性能"选项卡上,在"硬盘"框中,选定为C盘;在"最大值"和"最小值"框上键入自定的交换文件大小值(约为物理内存的4倍),然后单击"确定"
  5.重新启动电脑,设置即告完成。一个固定大小的交换文件连续存放在C盘上。文件名为Win386.swp,存放在根目录中。
  但是,这样手工设置虚拟内存后,电脑有可能出现异常。因此,应慎用此法。另外一个比较稳妥的优化虚拟内存的方法是使用NU95等工具软件。NU95的使用比较简单,下面另外介绍一个优化内存的好工具:

  三、WinRam-Booster 在使用win95/98系统时,内存中常常会有一些以前运行程序时驻留在内存中的文件所占据的空间没有完全释放出来,要想充分利用内存,除了频繁重启机器外,可试试WinRam-Booster。
  WinRam-Booster是个在Windows9X/NT/2000下优化内存的软件。它除了可以对Win386.swp文件进行重新组织外,还可以将以前驻留在内存中的程序所占据的空间完全释放,供其它程序使用,以提高系统运行效率。
  运行WinRam-Booster后,在系统任务栏中会多出一个小图标,单击这个图标后可以看见它的设置界面。在上部的窗口中显示的是当前的内存资源以及CPU的占用情况。下面的滑块是用来确定要释放及优化的内存大小。可以选择物理内存的1/4到1/3,然后点击"OptimizeRAM"(优化内存)按键之后,WinRam-Booster就可以工作了。再下面的状态条可以让你确定多长时间自动优化一下内存,这里一般选择10分钟左右,如果时间间隔太短了,反而会造成系统效率的下降。点击下部的"Settings"按键后,可以看见图中右半部分的窗口。这里也有一些关于WinRam-Booster的设置选项。其中可以设定WinRam-Booster的启动条件、是否调用无用的DLL文件、在内存空间小于20%时自动进行内存优化等。
  WinRam-Booster比其它一些内存优化软件优越的地方在于,它可以自行定义运行哪些程序之前将内存进行一遍整理,以腾出最大的内存空间给这些指定的程序使用。选定需要优化内存的程序路径及文件名,调整需要优化的内存大小,再点击"CreateShoutcutondesktop"之后,桌面上就会多出一个为这个程序而定制的内存优化空间方式了。下次运行这个程序时,只要双击这个图标,不仅会自动调用该程序,更会给你更多的可用内存空间。该软件的下载网址是http://www.totalidea.com。

  下 一 页:硬件优化漫谈之其它篇

相关报道





本站检索


中华网推荐

·国家级治脑病新药思维源
·中藏药治疗脑病新突破
·治类风湿,强直性脊柱炎
·养肾·痛风·长寿
·肝病泌尿脑萎缩新药介绍
·强直性脊柱炎康复乐园
·让中医辩证不孕不育
·国医治股骨头坏死一绝
·乙肝为何久治不愈?
·二千元垄断批发做老板
·中医中药专治前列腺
·治牛皮癣白癜风已成现实
·专治痛风病的白衣天使
·不孕不育的杏林奇葩
·专卖店零售管理系统




   

科技主编信箱