五千年(敝帚自珍)

主题:Firefox真能通过选项释放内存吗? -- chela

共:💬5 🌺1
全看分页树展 · 主题 跟帖
家园 系统内存管理

对于线程来讲,应该是释放了。如果看到总内存不变,可能和系统的内存管理有关。

不知道你应用的是什么平台,Win 还是Linux,但是我说一下我所熟悉的Xbox平台(估计都是MS的平台,内存管理方式不会有太大的区别)。一般一个进程启动,系统会依据进程提交的属性、类别和优先级分配若干内存页面作为这一类进程的内存池,该类进程及属下的线程在随后的内存申请中都从着一内存池中分配。

这样的好处就是同一类进程和属下的线程的内存物理上是连续的,可以大大加快索引速度。同时同类的进程在同一个内存池中也大大增加了cache击中的概率。在内存池耗尽时才继续向系统申请新的内存页面,同时也减少了系统内核内存分配/回收/整理的开销。还有如果有多个进程为同类,应用同一内存池的情况下,一个进程退出并不销毁该内存池,下次重新启动该进程的速度也会加快,因为不需要重新分配系统内存,甚至很多相关内容仍旧没有销毁。

这种情况下,如果你最小化FF,FF应该只是释放了属下浏览器线程的内存,但是进程仍旧存在,系统分配的内存池并没有释放。所以总系统应用内存没有减少。你可以试试在这种情况下你重新最大化FF,并重新浏览你先前的页面,速度会明显比你上次浏览快。

你关闭FF,可能可以看到总内存减少,因为进程关闭,系统才回收内存。不过也不一定,如果我开发FF,并且知道Win的核心的话,我会登记FF为和IE同类的进程,应用共同的内存池。

另外如果你最小化FF,并且长时间不用,同时如果你内存比较紧张的情况下(例如只有512M),你再打开另一个耗费内存的进程,运行一段,你可能会发现另一进程内存上升,但是总内存应用不变。可能就是系统回收了利用率低的内存重新分配了。

关键词(Tags): #内存管理
全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河