电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > DOC文档下载
分享到微信 分享到微博 分享到QQ空间

系统资源泄漏的问题和对策.doc

  • 资源ID:487886908       资源大小:22KB        全文页数:5页
  • 资源格式: DOC        下载积分:10金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要10金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

系统资源泄漏的问题和对策.doc

系统资源泄漏的问题和对策有人说,如果使用Windows98,那么在使用了3个小时以后,最好能重新启动一次,因为它太累了。事实上确实如此,但并不是因为它太累了,而是因为系统资源的泄漏。一、系统资源谈到Windows时,有一个必说的话题系统资源(System Resource),但系统资源到底是什么,有人说是指CPU,有人说是指硬盘空间,有人说是指内存 当应用程序在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.虽然可用系统资源的减少不会对系统的性能有任何影响,但是其值最好不要小于10%,小于此值带来的直接后果是可能不能再加载新的应用程序,而副作用是系统崩溃的可能性大大增加。 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等,以免它们驻留内存,在需要

注意事项

本文(系统资源泄漏的问题和对策.doc)为本站会员(鲁**)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.