[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: 自动更新后内存貌似没有释放



这句也就只针对上面说的状况才成立,就是程序运行结束后为什么空余内存很小。 因为程序在运行的时候,除了即时申请的动态堆和栈。代码区,静态数据区都是作 为文件映射到进程空间的。因此即使退出,只要没有新的内存申请,这部分内容还 会继续保留在cache中。自然在这个时候察看空余内存,会发现大量的内存被占 用,空余内存让人很抓狂。原来我曾经因为这个事情,把2G的内存(当时很大了)升 级到4G。结果不但问题没有解决,反而引发了需要重编译内核以支持大内存容量的 问题。最后查到问题关键,差点吐血。

Ming Hua 写道:
Ming Hua 写道:
On Mon, Dec 31, 2007 at 11:01:53AM +0800, shell909090 wrote:
不过在察看系统空余内存的时候,就会非常不好看,基本都是8M上下。
没有这样的说法。虽然作为 cache 的空余内存不会被自动释放,但系统也不会没 事自己去把空余内存拿来做 cache。如果没有什么程序运行,系统有几百兆空域内
存也是很常见的事情。

On Mon, Dec 31, 2007 at 01:17:58PM +0800, shell909090 wrote:
他问的不就是为啥运行了程序后空余内存不释放么?

我只挑了一句你说的话引用,就是说这一句的说法我不同意。

你的解释的其它部分,我没有什么意见。我也不怎么懂 Linux 的内存管理。

Ming
2007.12.30




Reply to: