日期:2014-05-16  浏览次数:20543 次

请各位帮助判断下有没有内存泄露
最上面是系统刚开机,最后一行是系统运行48小时后。
请问是否有内存泄露?如何判断?多谢

Mem: 22196K used, 103868K free, 0K shrd, 3084K buff, 9144K cached 
Mem: 22152K used, 103912K free, 0K shrd, 3084K buff, 9164K cached   
Mem: 24372K used, 101692K free, 0K shrd, 3424K buff, 10356K cached
Mem: 25756K used, 100308K free, 0K shrd, 3572K buff, 11380K cached  
Mem: 25812K used, 100252K free, 0K shrd, 3572K buff, 11448K cached  
Mem: 27560K used, 98504K free, 0K shrd, 3772K buff, 12960K cached
Mem: 27204K used, 98860K free, 0K shrd, 3772K buff, 13008K cached 
Mem: 27964K used, 98100K free, 0K shrd, 4084K buff, 13508K cached 
Mem: 18104K used, 107960K free, 0K shrd, 748K buff, 7104K cached
Mem: 19512K used, 106552K free, 0K shrd, 800K buff, 8444K cached
Mem: 19752K used, 106312K free, 0K shrd, 912K buff, 8612K cached
内存泄露

------解决方案--------------------
占用内存没有随着时间增长,可判定没有。不过48小时有点儿短,一般最少72小时

------解决方案--------------------
最好的方法还是白盒测试,先模拟触发运行48小时的运行状态,然后用valgrind测试一下看看。
------解决方案--------------------
你们的程序总有测试用例吧?就是仿照你的测试用例来生成运行环境呗。比如你们的测试用例有100条REQ,集成测试时,是一个个REQ独立的测,系统测试时,就把这些测试用例给组合起来,让其一次完成,比如模拟1000条REQ,或者更多,然后让系统跑一下,之后用VALGRIND看一下内存使用情况。反正就按照系统测试的测试用例来呗。