google搜索 站内搜索                 软件测试门户 | 软件测试培训 | 文章资料精选 | 软件测试论坛 | 测试解决方案 | 软件测试博客 | 测试招聘求职 
打印

[求助] 程序消耗大量内存如何检测

程序消耗大量内存如何检测


各位达人,最近碰到一个问题,我们的程序出现了使用以后消耗大量内存的情况,使用时间越长消耗越多,最后导致死机.请教各位,导致这种情况出现的问题在哪,如何检测程序对内存的消耗~?有什么办法解决?

TOP

这个。。代码中没写释放内存吧。

TOP

检测内存问题


根据你所描述的情况,看来是内存泄漏的问题。解决办法建议: 在Windows平台下,检测内存泄漏的工具常用的一般有三种,MS C-Runtime Library内建的检测功能;外挂式的检测工 具,诸如,Purify,BoundsChecker等;利用Windows NT自带的Performance Monitor。这三种工具各有优缺点, MS C-Runtime Library虽然功能上较之外挂式的工具要弱,但是它是免费的;Performance Monitor虽然无法标示出发 生问题的代码,但是它能检测出隐式的内存泄漏的存在,这是其他两类工具无能为力的地方。 所以,你可以根据具体情况选择一个合适的检测内存泄漏的工具,来辅助你测试。

TOP

可以肯定的是,程序中写了释放内存的代码.只是不确定是否真正释放了内存.

TOP

回复 #3 god 的帖子


谢谢~!!我试试您说的那几个工具! 各位还有何高见欢迎提出来~!

TOP

肯定是内存泄漏撒
欢迎访问Ricky的专业个人测试博客
http://www.rickyzhu.com
专注于测试自动化,性能测试以及测试工具的研究

TOP

Purify

TOP

内存泄露,没跑了....程序写的时候怎么都不注意这问题呢,开了块内存空间用完了就要释放和关闭嘛!常识哦

TOP

乱开内存的话释放也会出现内存碎块的问题,也会导致内存不足....这种问题完全可以用编程规范守则来解决

TOP

不同的语言对检测工具不同的 c++: purify 在linux 和windows 都可用。 linux上可以用vagrind java 可用jprobe,jstat等等

TOP

肯定是内存泄露


1.用performance monitor执行内存总量对比分析,添加进程,并选中系统\线程,找到哪个进程、线程出现内存泄露 2.用Purify执行找到模块的内存、堆栈、数组等的边界分析。 3.和开发人员一起分析,在修改后执行回归测试,一般问题就可以搞定了。

TOP

 
当前时区 GMT+8, 现在时间是 2008-12-2 00:37Copyright(C)上海博为峰软件技术有限公司 2001-2007 电话:021-64471599-8017
当您在访问网站、论坛及博客过程中遇到问题时可发送email:webmaster@51testing.com或发送论坛短信至管理员风在吹