光纤熔接 ERP

弱电论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2352|回复: 1
打印 上一主题 下一主题

怎样提高爱机的资源率?

[复制链接]
跳转到指定楼层
1#
发表于 2008-5-26 23:01:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
华为代理商
在说到解决方案之前,有必要先解释一些更细节的问题。首先,系统资源基本上就是小段的

内存,Windows 95/98为应用程序需要与操作系统通讯时使用而留出此段内存。在正常的环境下

,Windows 95/98专用于系统资源的集中备用内存部分足以维持多数运行应用程序的需要。

    但是,并不是所有的应用程序都可靠地使用系统资源。一些应用程序会占用多于它们需要的

系统资源,而其他的程序没有在它们结束运行后正确地返回给系统资源备用内存。那些没有返回

的系统资源随即丢失,而资源内存减少。如果系统资源损耗继续下去,就有可能使得Windows

95/98性能降低并最终崩溃。

    如果你和大多数的人们一样,首先在你的大脑中浮现的信息就是“我的系统有足够的内存,

那对我是不可能发生的情况!”可惜的是,专用于Windows 95/98系统资源的内存数量是全部实

际内存量的很小一部分。基本上,这就意味着无论你在你的系统上安装多少内存――8MB或128MB

――你在运行多个应用程序的时候都会用完可用的系统资源。

    当应用程序在Windows中运行时,Windows必须实时“跟踪”该应用程序的运行,并保留与之

相关的许多信息,如按钮、光标、菜单的位置和位图、窗口的状况等,这些信息由Windows保留

在一种叫堆的内存块中,堆的英文为Heap。简单地说,堆是采用特殊机制管理的内存块。由

Windows的一个系统内核User.exe管理的堆叫作User资源堆(User Resource Heap),由另一个

系统内核Gdi.exe管理的堆叫作GDI资源堆(Graphical Device Interface Resource Heap,简称

GDI Resource Heap),User资源堆和GDI资源堆合称为系统资源堆(System Resource Heap),

习惯上就把它们叫作系统资源(System Resource)。

    微软将Windows的系统资源(堆)分为五个堆,其中User资源堆为三个,而GDI资源堆为两个



    三个User资源堆分别是:16位的用户堆(User Heap,64KB);32位的窗口堆(Windows

Heap,2MB);32位的用户菜单堆(User Menu Heap,2MB)。

    两个GDI资源堆分别是:16位的GDI堆(GDI Heap,64KB);32位的GDI堆(GDI,2MB)。

    从这里的系统资源分类和大小我们应该明白,不管CPU是P4还是486,内存是8M还是1G,所有

Windows的用户都拥有同样大小的系统资源(堆),用户不能自己增加或减少系统资源的大小,

这是由操作系统决定的,与硬件档次没有任何关系。

    Windows的User资源堆和GDI资源堆的可用(Free)空间称为可用 User资源和可用GDI资源,

Windows中以百分数表示它们,用户可以选择 “开始/附件/系统工具/资源状况”,来实时查看

它们的大小。注意,“资源状况”不是Windows的默认安装组件,使用典型安装的用户需自己添

加上去。

    接下来,我们要说说为什么可用系统资源会不断减少的问题——

    当一个应用程序在Windows中被加载时,Windows自动地将可用User资源堆和可用GDI资源堆

中的一部分空间分配给它,而当应用程序退出时,这部分空间也应该由Windows收回以交给别的

应用程序使用。但实际上几乎所有的Windows
    用户都发现:一个应用程序加载前和退出后可用系统资源的值是不相等的,而且随着应用程

序的不断加载和退出,随着Windows使用时间的增加,资源状况显示的可用系统资源也在不断减

少。

    微软的正式解释是:

    系统初始化

    Windows在启动时要进行系统初始化(System Initialization)的过程,
    Windows的系统初始化属于延时初始化。例如,Windows在启动时只初始化当前使用的字体,

以后当应用程序要使用到尚未被初始化的字体时,
    Windows才会初始化该字体,这种由应用程序根据需要提出要求而发生的初始化服务就是所

谓的延时初始化。对于属于延时初始化的服务,
    Windows还采用了特别的管理方式,当向Windows提出延时初始化服务的应用程序退出后,与

延时初始化服务相关的系统资源(例如上面提到的与新字体有关的系统资源)不会随着应用程序

的退出而马上释放,这是造成应用程序加载前和退出后可用系统资源的值不相等的原因之一。

Windows不马上收回与延时初始化服务,是为了防止该应用程序或别的应用程序以后又向系统提

出同样的初始化服务而导致系统不断重复服务而浪费时间。例如对于加载同一应用程序,第二次

加载的时间会明显少于第一次,显然延时初始化功不可没。

    兼容性

    在Windows中运行的所有16位应用 程序共享相同的地址空间,当其中某一个16位应用程序正

常退出或出现错误而被关闭时, Windows 9X并不马上收回这个应用程序所占用的系统资源,这

也是造成一个应用程序加载前和退出后可用系统资源的值不相等的又一个原因。只有当所有的16

位应用程序全部退出后,Windows才能安全地收回被这些程序占用的系统资源,此时可用系统资

源才会恢复到原值。之所以这样设计,主要是考虑到要让Windows 9X能继续运行大量的16位应用

程序。

    资源泄漏

    按上述解释,可用系统资源的不断减少是正常的,这是 Windows的设计目的之一。但是许多

人在实际工作中还发现在其他一些情况下Windows也会不能完全收回系统资源,这也导致可用系

统资源不断减少,程序员称这种现象为资源泄漏(Resource Leak)。微软开始并未承认,但是

随着证据的不断增加,最后还是不得不承认其中的一些现象是存在的。

    比如一个程序还未完成其加载过程时(即还没有启动完毕)就关闭它会造成资源泄漏,而且

只有重新启动才能回收。

    另外一些应用程序退出后Windows并不马上收回分配给它的系统资源,而是保持15分钟左右

,到Windows完全肯定不再需要时才将它们收回,这可以看作是延时初始化的一种延伸。

    用户使用“Ctrl+Alt+Del”强制性地关闭一些应用程序会造成资源泄漏,因此用户应该尽量

使用应用程序本身的关闭功能退出应用程序,只有实在没办法时才使用这种关闭方法。因为这种

强制关闭应用程序的方法往往只能关闭主程序,而不能关闭应用程序的一些子程序,因此会导致

一些系统资源发生泄漏。

    一些编写不善的应用程序会造成资源泄漏。一个应用程序在运行中往往会因出现意外而崩溃

,若程序员在编写应用程序时没有考虑到这种意外情况的出现,并在应用程序中有相应的代码处

理这种意外,那么当该应用程序非正常关闭后,该应用程序所占用的系统资源就不能由Windows

收回。

    还有一些应用程序,即使是正常关闭也不会释放它所占用的系统资源,这样的应用程序被程

序员称为“垃圾”,计算机用户绝对不要使用这样的软件。

    还有一些实际存在而微软也没有给予解释的情况。比如用户上网结束后关闭拨号网络中的网

络连接,然后按Ctrl+Alt+Del看看,一定会发现有一个名为rnaap(英文版)或者rnaapp(中文

版)的程序还在运行,这是什么东西?其实这是拨号网络用来拨通ISP的远程网络访问程序

(Remote Network Access Application Program),在用户登录网络的时候这个程序被运行,

但是在用户从网络注销后它本身并未退出。这不免让人产生这样一个疑问:在这样一个庞大的

Windows系统中,到底还有多少这样那样的例外存在呢?

    关于系统资源泄漏的问题还有许多,但在这里我们不再对它们进行详细的分析和解释,先看

看应该如何解决这些问题——

    1.准确地来讲,Windows中并不存在一个有着实际意义的系统资源。可用系统资源一定等于

可用User资源和可用GDI资源中值较小的那一个。

    2.Windows的可用User资源是根据所有User资源堆中可用空间最小的那个资源堆计算出来的

;可用GDI资源的计算方法也是一样。为了保持与16位应用程序的兼容性, Windows 9X的大量数

据都要使用16位64KB资源堆,这导致总是16位64KB的资源堆首先被大量消耗,因此在 Windows

9X中,限制系统资源使用的是64KB的资源堆而不是2MB的资源堆。

    3.系统资源是用来跟踪应用程序的运行而不是用来运行应用程序的,就像公路上车多车少,

并不是车稍微多点就没有办法开车了。因此可以肯定地说,影响计算机系统性能的是计算机系统

其他的因素,而绝不会是可用系统资源的大小。当用户计算机系统性能明显降低时,应该从别的

方面去查找原因,而不要马上怀疑到系统资源身上。从硬件方面来看,内存太小导致系统不得不

频繁使用虚拟内存是影响系统性能的主要原因之一;从软件方面来看,因为Windows是一个多任

务的操作系统,大家都习惯同时运行多个应用程序而不管当时是否实际需要。而编写和调试这些

应用程序的程序员一般只考虑其在单任务环境下的运行,而没有过多的精力从多任务环境来考虑

和调试,因此许多应用程序间往往不能很好地协同工作,同时运行多个这样的应用程序会因它们

彼此之间发生冲突而导致系统性能下降。当然,Windows 9X多任务管理机制的不完善也是造成这

个问题的主要原因之一。

    4.虽然可用系统资源的减少不会对系统的性能有任何影响,但是其值最好不要小于15%,小

于此值带来的直接后果是Windows将拒绝启动任何新的应用程序,而副作用是系统崩溃的可能性

大大增加。

    5.Windows本身也要占用系统资源,因此绝对没有哪个Windows用户的可用系统资源会是百分

之百,要保持有更多的可用系统资源的方法是不要同时运行太多的应用程序。Windows和它的许

多应用程序都有一个不经用户同意就自动加载东西的坏毛病,大家可以运行Msconfig.exe来关闭

一些没有必要自动加载的应用程序,如ICQ、电子词典和超级解霸的自动播放伺服器等。

    6.不要将系统资源和CPU资源(CPU使用率)相混淆,硬盘、光驱、软猫的数据处理、显卡的

3D图像处理、声卡的3D音效处理占用的都是CPU时间(即消耗CPU资源),而不是系统资源,这些

硬件设备的先进与否与占用系统资源的多少根本没有任何关系。按习惯,谈到硬件的资源占用一

般是指其CPU资源的占用,而软件的资源占用既包括CPU资源占用又包括系统资源(堆)占用,但

计算机用户关心的一般是后者,因此谈到软件的资源占用时一般是指其对系统资源的占用。

    (注意,这里所提到的与系统资源有关的各种问题只适用于Windows 3.X、Windows 9X和

Windows Me,而不适用于Windows NT、Windows 2000和Windows XP,因为它们设计和管理系统资

源的机制是不同的。)

    说到这里,我们可以知道系统资源都被谁占用了——

    1、启动时需要加载的系统运行文件,设备驱动程序。(.dll .vxd .sys……)

    2、任务栏的应用程序(病毒防火墙、计划任务、声音和输入法指示器、电源管理、多媒体

播放软件……)

    3、Windows的图形界面(桌面和菜单图标、背景、桌面主题、屏幕保护程序……)

    4、以MS-dos方式运行的软件(如:加载了EMM386.exe、声卡的DOS驱动……)

    5、应用程序废弃的动态链接文件文件(.dll……)

    6、多次重复运行大型软件如Word等,也会造成系统资源减少。

    7、安装过多的软件也会减少系统资源(如果你的MP3播放器就安装了5、6种,那么系统资源

肯定会相应的有所减少)。

    当然,这里罗列出的并非全部原因,但主要是这些。针对这些原因,建议大家——

    1、启动时尽量减少系统启动时辅助软件的加载,如:防火墙软件、QQ等,以免它们驻留内

存,在需要时再运行它。在“开始”菜单下的“运行”中键入“MSCONFIG”,按“确定”按钮,

再在出现的“系统配置实用程序”界面中按“启动”标签,取消对无需加载程序的选中状态,按

“应用”或“确定”按钮,然后重新启动计算机,该自动加载程序就被取消了。

    2、去掉Windows那些华而不实的东西,如:屏幕保护程序、桌面主题程序、计划任务程序、

WEB方式桌面……

    3、整理内存碎片,用Windows优化大师中附带的“磁盘缓存优化”→“内存优化”,可以显

著增加系统资源。

    4、优化桌面的图标,菜单等项目。减少桌面上快捷方式图标以及定期、不定期清理开始菜

单。快捷方式图标和开始菜单中项目是消耗GDI资源以及USER资源的大户,尽量减少桌面快捷方

式图标和保持一个整洁有序简明的开始菜单是节约资源的又一重要方法。要做到对不用的桌面快

捷方式图标进行删除;桌面快捷方式图标与开始菜单下程序子菜单中重复的项目根据操作习惯选

取一个即可,另一个可予删除;把同类型程序组织到一个文件夹中,减小开始菜单体积。例如可

将所有Office组件组织到一个文件夹Office中,将Internet Explorer、 Internet News、

Outlook Express、Microsoft Netmeeting 等组织到Internet文件夹;去掉一些不常用的项目,

卸载“帮助”、“readme”等的快捷方式。

    5、在不上网、不安装新软件的情况下,尽量不要打开病毒防护以及防火墙,可以减少一些

随意重启,非法操作和死机的发生。

    6、在Windows的图形环境下,没有必要加载声卡的MS-DOS驱动程序。

    7、不要同时运行两个及更多大的软件,如:图形软件,音频压缩,以及刻录软件,不要在

一个大程序没有响应完时,打开其它大的软件。

    8、去掉“计划任务”的运行。一般情况下我们不会用到它,而它所能执行的维护任务,大

多都能用手动的方法进行运行。如果去掉“计划任务”的运行,至少能节约2%的系统资源。
    方法是:在计划任务的图标上双击,在弹出的窗口中选“高级”菜单,从中找到 “终止执

行计划任务”单击之。

    9、设置在同一窗口浏览文件夹。在Win98中,系统默认设置已经是使用同一窗口进行文件夹

浏览,一般不需再另行设置。

    10、用小程序释放内存。最简单的回收系统资源的方法就是亲手制作一个小程序来释放内存

,这样即可简单、方便、有效地整理内存碎片。其实这个小程序就是两个VBString语句。新建一

个文本文件,然后在里面键入:

    Mystring = Space(16000000)或Mystring = Space(80000000)。

    前者适于内存小于128MB但大于32MB的电脑,后者适合内存等于或大于128MB的电脑,可以根

据自己的情况选择,然后将其保存为memory.vbs。建议将其放在桌面,这样在任何时候你可以双

击它来整理内存碎片。如果在使用后者时出现了问题,那么可以改为前者的语句。另外,在运行

它之前建议关闭其他所有程序,这样才能得到最好效果。

    11、合理地设置虚拟内存的大小,并使它尽量处于连续的硬盘空间中以加快执行速度。

    12、如果觉得系统资源太少,不妨重新启动机器,这样会使你的系统资源恢复。

    13、如果用了各种优化方法,本机的系统资源都停留在85%以下,此时建议您重装系统,这

是个一劳永逸的大法!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享
2#
发表于 2011-7-11 18:34:36 | 只看该作者
华为代理商
现在好像没有用Windows 95/98的了,楼主说点有用的,好吧!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|广告咨询|VIP注册|关于我们|联系我们|积分规则|手机版|Archiver|弱电之家论坛 ( 京ICP备11008917号-3 )

GMT+8, 2025-6-22 19:58 , Processed in 0.134461 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表