欢迎来到天天文库
浏览记录
ID:43949950
大小:78.50 KB
页数:8页
时间:2019-10-17
《剖析windows用1g内存还慢的原因》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、剖析Windows用1G内存还慢的原因安装大容量内存后,系统、程序运行效率没有得到人幅度捉髙,这是因为系统木身运行机制限制了其管理和运用硬件资源的能力。所以纵然硬件资源非常丰庁,如果超出了Windows管理的范围,那么性能也不会得到明显提升。一、Windows这样使用内存想要知道为什么系统速度提升不再明显,必须先理解Windows怎样使用内存。这里要涉及一个概念——资源。这不是平时所说的cpu资源,内存资源或统一的”系统“资源。我们接卜•来要讲到的”资源”就是程序可以操纵的Windows物件。举例来说,屏幕上显示的每个窗口都是一个资源,每幅图片也都可以能是一
2、个资源。如果一个应用程序打开了磁盘上的一个文件,那么这个被打开的文件也是一个资源。以此类推,如果一个应用程序需要使用一个资源,它就会向操作系统提出请求,要求新建一个或从存储器里调用1•情景再现:程序与系统的对话程序说:”嗨,Windows,我要新建一个300像素宽,200像索高的窗」ok?”于是,Windows立即按要求创建或调用这个资源进内存,然后反馈给应用程序一个代号:”好,我已经创建好你要的窗口,它的代号是#38710。“此后,需要用到新建的这个窗口时,应用程序都用Windows反馈的代号代表这个资源。“Windows,麻烦你在显示屏幕左上角显示#38
3、710。””好!”最后,当应用程序不需要用到该资源的吋候,它会要求Windows去除这个资源。”OK,请你删除#38710。“”好!”。2.指针——内存屮的邮政编码那么这个代号是依据什么标准工成的呢?在绝大多数操作系统中,它是靠一种叫做”指针“的东西來确定的。你可以把整个内存想像成一个邮局,邮递员把需要寄往各地的信件分类放到很多个不同的信箱里。信箱一个接一个,足足占据了一堵墙。每个心细那个都装了一些信件,包含要送往一个特定地区的信息。而就好像每个地区都冇邮政编码一样,每一块可以存储数据的内存空间也有一个地址——指针。代表这个存储空间的一串数字。内存中某部分数
4、据的”指针“,也就是这些数据占据的第一处内存空间的地址。所以,如果我是一个普通的操作系统,有一个应用程序要求我调用一个窗口,我就会按照它告诉我的要求调用这个窗口进内存,如果这个资源的数据在内存屮存储的地址开始于#1234567,那么我就会返I川一条信息给应用程序:“好了,我调出了这个窗口,它是#1234567。“3.解决指针带来的问题在PC中,这种指针有4个字节Zhango所以如果一个应用程序需要给内存里的某个数据配一个指针,那就需要4字节的内存空间。这样的工作方式给早期的Windows设计者带来了不小的麻烦,因为那时制作工艺尚不发达,内存非常昂贵,一台电脑
5、上有8MB的内存就足以让用八无数次从梦里笑醒了,大多数电脑只能配制4MB内存。在内存如此紧张的情况下,一个应用程序却经常需要用到几百万个资源。要用这些资源,就耍个每个资源配发一个指针。每个指针占据4个字节,几百万个指针,就会消耗掉数蜃客观的一块内存空间。这就好比一份钱很少,但如果要发给全国人民每人一-份钱,那就是至少一千三百万元的巨款了。所以,Windows设计者采用了另外一种替代方案。他们创建了资源表。就是把当前调入内存的所有资源的信息登记到一个清单。这样一来,当应用程序耍求系统调用一个资源时,系统调用后就不给它配发指针了,而是直接告诉应用程序该资源在资源
6、表中的序号。“好了,我已经调用了你需要的资源,它在资源表里面的序号是#383”因为需要不是内存地址,所以就可以用一个只需占用2字节的数字表示。这只是两个字节的差距。但当你只有几MB内存,而你运行的程序动咎调用大虽资源时,这两字节的差距就会带来很大的优势。你知道吗?微软64位操作系统没1GB内存就别玩在32位Windows2000/XP中,最大支持4GB的内存,每个应用程序最多只能使用2GB内存,因为另一半的内存也留给系统使用了。而在64位WindowsXP屮,这个限制没有了,每个程序能完全使用4GB内存,除Windows,微软述在开发64位版木的SQLSer
7、ver2000和WindowsScrvcr2003,不过要运行这些应用程序,需要你的电脑至少得冇1GB内存2.吋过境迁,妙计成缺陷但这种方法也有它的聲端——两个字节能够表现的不同数字非常'有限我们可以做个实验:请你写不同的数字。如果只准你写一位数,那就只能写出十个不同数字。如果限制写两位数,虽然能写出更多,但总数仍然冇限。以此类推,允许位数越多,能写出的不同数字就越多。但只要位数有限制,写出的不同数了的总数就始终有限。同理,如果允许系统使用4字节的序号,那么在这个”位数限制”下,可以有儿十亿个不同的序号可供使用。但如果只准系统使用2字节序号,能用的序号就会锐
8、减到65536个。于是,前面我们讲的资源表就不能无限
此文档下载收益归作者所有