当前位置: 技术问答>linux和unix
用top命令查看一个进程,虚拟内存一直不变,但物理内存每时5s增长12k或20k.
来源: 互联网 发布时间:2016-09-13
本文导语: 用top命令查看一个进程,虚拟内存一直不变,但物理内存每天增长4M,用pmap查看,每5s增长12k或20k,一直没有分析出是哪里出了问题,请教各位这种情景是否确实为内存泄露?有没有更好的分析方法?给小弟点思路...
用top命令查看一个进程,虚拟内存一直不变,但物理内存每天增长4M,用pmap查看,每5s增长12k或20k,一直没有分析出是哪里出了问题,请教各位这种情景是否确实为内存泄露?有没有更好的分析方法?给小弟点思路。谢谢!
|
虚拟内存不长通常就没有内存泄漏。物理内存增长通常是你的活跃数据/代码越来越多,所以都慢慢被调进无力内存了,不是很大的问题,具体的分析要看你的程序是什么性质。
举个简单的例子,上来就分配了一个大数组,然后随着程序的运行往其中增加不重复值,这样每次增加的时候你都会读取/移动部分数组。在这种情况下,虚拟内存是不会变的(没有申请更多空间),但是物理内存会越来越大,因为你访问的数据越来越多。
举个简单的例子,上来就分配了一个大数组,然后随着程序的运行往其中增加不重复值,这样每次增加的时候你都会读取/移动部分数组。在这种情况下,虚拟内存是不会变的(没有申请更多空间),但是物理内存会越来越大,因为你访问的数据越来越多。
|
楼上分析的很详细
你监控了多久 得出的结论是 物理内存每天增长4M
把你的free -m后的结果 贴出来看看
你监控了多久 得出的结论是 物理内存每天增长4M
把你的free -m后的结果 贴出来看看
|
哪个进程的程序没写好吧,内存泄露,用vargrind跟踪一下看看,哪里漏了。