返回列表 发帖

内存管理么?有让浏览器具备内存清理功能的朋友们来看看

看到了一些讨论,老人们对这个功能不在乎,新人们希望tw更加强大。正好我是学计算机的,对windows的内存管理还做过一些小小的研究,所以想向大家尽量通俗的介绍一下,让大家自己来判断此功能的适用程度。

过于基本的概念我就不说了,有一点需要说明,windows使用的是不是像linux一样的页面管理,他的内存虽然也有页面,但是真正宏观上的属于区块管理。也就是将内存分割为大小一样的区块,而区块之内的管理则是页面管理。

分析内存管理和清理功能,有一个概念是绝对不能忽视的,那就是window中的动态链接库。在系统中命名规则为*.dll 它记录的是系统或软件(其实系统也是软件)在运行中所有需要的运行函数。软件如果很小的话,是不需要动态链接库的。但是如果软件比较复杂,那么就意味着他所用到的函数很多,如果纯粹靠内存链表机制(这种东西是程序员设计的,将函数直接放到程序所在的内存空间中)会让整个软件的运行效率极大降低,这个时候,就需要有动态链接库。动态链接库事实上是.exe文件的一个扩展,由.exe文件调用,好处就是可以将函数与程序存放于不同的内存空间,而调用的花销仅仅是内存之间的链表切换而已。这样的文字可能比较晦涩,我来举一个例子。这就好像在公司中的材料越来越多,原来的量堆在办公室角落里就可以了,但是现在公司发展了,办公室里堆不下那些材料了,需要使用一个库房来专门的堆放材料。这里的公司就是.exe文件,办公室就是.exe的本身空间,而库房就是我们的.dll文件。

所谓的内存管理,就是将内存中不常用的(windows有自己的计时管理,用来判断内存中内容的使用频率)文件和程序块转移到高地址段或虚拟内存中,而将低地址段留给常用的程序并将常用的内存内容转移过来 (这样安排是因为地址段靠近总线,访问速度快)。

所谓内存清理,就是将不需要的内存打上释放标签,再使用内存的时候就可以使用这些内存。另一种方法是将不常用的dll文件转移到虚拟内存中,空闲出物理内存来。

过度频繁的整理和清理内存是有坏处的,因为每一次整理或清理都是内存上的移动操作,必须重建链接表,重建内存指针,这是一项相当消耗内存和cpu资源的工作。而且如果一旦这个时候程序启动,那么会造成程序上各种莫名其妙的错误,严重的还会使系统崩溃。而且我还有一个经验,那就是不管是什么程序,在整理和清理内存之后,都可能会或多或少的出现内存泄露的情况,这是因为内存毕竟是电气设备,强制移动会造成一些内存的内容来不及释放,在后续扫描的时候,就有可能将这些没有释放的内存归入进程(windows仍然认为其在使用中)。

写的很乱,将就看吧。希望能了解我的中心思想就好

因此,我不建议加入这个没有用的功能啊

TOP

呵呵,山水表达的意思很明确.
遇见浏览问题请将tw主程序拷贝到空白目录下运行,排除插件、设置文件的错误。反馈问题时请尽量包含以下内容,以便开发组可以尽快解决问题:TheWorld版本、操作系统、IE版本、问题现象(可截图说明)、问题重现方式(如果可以反复重现)
世界之窗浏览器--打开窗口看世界。
应用技巧和常见问题
风向吧

TOP

唔..真的有这样的感觉.不过觉得如果玩大型的游戏退出来后运行下.有那么一点点的快.

TOP

呵呵,一直就反对加入这一功能!有很多朋友不了解,还以为那是
很了不起的功能,其实在编程时一个API函数就搞定,MS在MSDN中
也说明了不建议使用。
共享是共产主义的初级阶段!
http://laimama.ys168.com

TOP

以前TT上最先用这个技术  然后MT还出来象我们现在这样解释  结果最后还是加了~~呵呵~~~~看来是趋势啊~~

TOP

我觉得还是加上的为好!退出或者最小化TW之后,清理一下内存。

TOP

内存管理的好坏是不是跟算法有直接的关系呢?

TOP

回楼上的  算法已经固定,没有选择的权利。对于内存的管理安全性和完整性为重,速度为次

TOP

返回列表