当前位置

Memory fragmentation

Firefox 吃内存的问题已经困扰它的用户很长一段时间了,每次无奈的看到 Task Manager 里占三四百兆的 Fx,程序员的心里恐怕都会浮起 "memory leak" 这个词。但是,据 Mozilla 开发人员 Stuart Parmenter 最新的调查表明,问题根源未必全是程序员粗心大意忘了 free,而很可能是内存碎片占了很大因素

怎么来避免内存碎片呢?只能去寻求更好的 malloc/free/realloc 库了。在 Windows 平台上,自 XP 和 Server2003 开始,微软提供了一个叫 Low-fragmentation Heap 的机制,以解决碎片问题。Stuart Parmenter 已经编译了一个基于 Low-fragmentation Heap 的 fx3-b1 build 供大家测试。【Stuart Parmenter 还提供了一个叫 RAMBack 的插件来回收内存】

在 Linux 或其它平台上怎么办呢?有热心人在评论里面提到 "Use Doug Lea's malloc. It's far better than Windows Low Frag heap",而且还指出了另外的一个方案: reaps (http://www.cs.umass.edu/~emery/pubs/berger-oopsla2002.pdfhttp://slashdot.org/comments.pl?sid=120623&cid=10160124)

另外,感觉由于 webkit 在 Mobile 平台上的成功 (iphone 和 gphone),Mozilla 也开始重视移动终端了,要不怎么这么费劲的去找用户早就抱怨了很长时间的内存问题,并且计划重新启动 Minimo

Topic: 

评论

之前512M内存的时候我的firefox很容易就把系统跑到800M内存占用。

后来把内存加到1.5G,使用的内存就在也没超过550M

内存小的时候会恶性循环