系统资源泄漏的问题和对策.doc
5页1、系统资源泄漏的问题和对策有人说,如果使用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)
2、,习惯上就把它们叫作系统资源(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的默认安装组件,使用典型安装的用户需自己添加上去二、为什么可用系统
3、资源不断减少当一个应用程序在Windows中被加载时,Windows自动地将可用User资源堆和可用GDI资源堆中的一部分空间分配给它,而当应用程序退出时,这部分空间也应该由Windows收回以交给别的应用程序使用。但实际上几乎所有的Windows 用户都发现:一个应用程序加载前和退出后可用系统资源的值是不相等的,而且随着应用程序的不断加载和退出,随着Windows使用时间的增加,附图中资源状况显示的可用系统资源也在不断减少。 微软的正式解释是: * 系统初始化 Windows在启动时要进行系统初始化(System Initialization)的过程, Windows的系统初始化属于延时初始化。例如,Windows在启动时只初始化当前使用的字体,以后当应用程序要使用到尚未被初始化的字体时, Windows才会初始化该字体,这种由应用程序根据需要提出要求而发生的初始化服务就是所谓的延时初始化。对于属于延时初始化的服务, Windows还采用了特别的管理方式,当向Windows提出延时初始化服务的应用程序退出后,与延时初始化服务相关的系统资源(例如上面提到的与新字体有关的系统资源)不会随
4、着应用程序的退出而马上释放,这是造成应用程序加载前和退出后可用系统资源的值不相等的原因之一。Windows不马上收回与延时初始化服务,是为了防止该应用程序或别的应用程序以后又向系统提出同样的初始化服务而导致系统不断重复服务而浪费时间。例如对于加载同一应用程序,第二次加载的时间会明显少于第一次,显然延时初始化功不可没。 * 兼容性 在Windows中运行的所有16位应用程序共享相同的地址空间,当其中某一个16位应用程序正常退出或出现错误而被关闭时, Windows 9X并不马上收回这个应用程序所占用的系统资源,这也是造成一个应用程序加载前和退出后可用系统资源的值不相等的又一个原因。只有当所有的16位应用程序全部退出后,Windows才能安全地收回被这些程序占用的系统资源,此时可用系统资源才会恢复到原值。之所以这样设计,主要是考虑到要让Windows 9X能继续运行大量的16位应用程序。 * 资源泄漏 按上述解释,可用系统资源的不断减少是正常的,这是 Windows的设计目的之一。但是许多程序员在实际工作中还发现在其他一些情况下Windows也会不能完全收回系统资源,这也导致可用系统资源不
《系统资源泄漏的问题和对策.doc》由会员鲁**分享,可在线阅读,更多相关《系统资源泄漏的问题和对策.doc》请在金锄头文库上搜索。
保险公司现金流量表编制规定
管道滑脱的应急预案模板(三篇)
2013年宾阳县小学语文毕业模拟试卷及答案
最新一般将来时易错题及解析
幼儿大班班务工作计划6篇.doc
健身房合作专题方案模板
静压沉管灌注桩工程
2018-2019学年高中语文 课时跟踪检测(七)中国现代诗歌四首(含解析)粤教版必修2
应急物资管理制度范文(十篇)
全省4G知识答题试卷(全员适用)
细胞的分子组成与结构
红旗港中桥模板专项方案
销售公司上半年工作总结(7篇).doc
来料加工装配协议书常用版(二篇).doc
儿童自我介绍
完整版简易型机械手课程设计
年产1000kt绿色高效复合肥项目商业计划书写作模板-招商融资
中学科研工作总结范本
企业任意调岗,员工解除劳动合同能否获得经济补偿?(离职补偿金计算公式一览表)
儿童康复中心康复工作计划总结报告
2023-11-18 22页
2023-07-06 6页
2023-03-02 61页
2023-03-31 2页
2023-01-16 11页
2023-05-20 5页
2023-09-13 75页
2023-02-09 13页
2023-09-06 76页
2023-03-28 8页