51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 10997|回复: 17
打印 上一主题 下一主题

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

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-3-23 14:13:12 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
各位达人,最近碰到一个问题,我们的程序出现了使用以后消耗大量内存的情况,使用时间越长消耗越多,最后导致死机.请教各位,导致这种情况出现的问题在哪,如何检测程序对内存的消耗~?有什么办法解决?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

18#
发表于 2010-10-21 17:50:13 | 只看该作者
学习
回复 支持 反对

使用道具 举报

该用户从未签到

17#
发表于 2010-10-21 17:48:20 | 只看该作者
学习
回复 支持 反对

使用道具 举报

该用户从未签到

16#
发表于 2010-10-15 15:26:25 | 只看该作者
顶。。。
回复 支持 反对

使用道具 举报

该用户从未签到

15#
发表于 2010-10-8 11:31:22 | 只看该作者
首先确定是应用的问题?
其次针对不同的语言有不同的工具。
回复 支持 反对

使用道具 举报

  • TA的每日心情
    擦汗
    2016-10-27 09:19
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]测试排长

    14#
    发表于 2010-8-5 13:29:25 | 只看该作者
    来学习
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2022-5-8 19:23
  • 签到天数: 137 天

    连续签到: 1 天

    [LV.7]测试师长

    13#
    发表于 2010-7-25 22:42:10 | 只看该作者
    方法有多种,首先你要定位的是,内存到底用到了什么地方,如某个功能模块;另外这个也不一定是有问题,也有可能你分配的内存本来就不够用
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2010-7-24 10:41:14 | 只看该作者
    学习
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2008-10-9 17:12:17 | 只看该作者

    肯定是内存泄露

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

    使用道具 举报

    该用户从未签到

    10#
    发表于 2008-5-15 00:31:53 | 只看该作者
    不同的语言对检测工具不同的
    c++:

    purify 在linux 和windows 都可用。
    linux上可以用vagrind

    java 可用jprobe,jstat等等
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2008-2-18 10:38:56 | 只看该作者
    乱开内存的话释放也会出现内存碎块的问题,也会导致内存不足....这种问题完全可以用编程规范守则来解决
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2007-11-12 14:22:10 | 只看该作者
    内存泄露,没跑了....程序写的时候怎么都不注意这问题呢,开了块内存空间用完了就要释放和关闭嘛!常识哦
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2007-10-26 13:34:54 | 只看该作者
    Purify
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2007-3-28 14:28:50 | 只看该作者
    肯定是内存泄漏撒
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
     楼主| 发表于 2007-3-27 17:07:58 | 只看该作者

    回复 #3 god 的帖子

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

    使用道具 举报

    该用户从未签到

    4#
     楼主| 发表于 2007-3-27 17:05:07 | 只看该作者
    可以肯定的是,程序中写了释放内存的代码.只是不确定是否真正释放了内存.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
    发表于 2007-3-25 22:05:42 | 只看该作者

    检测内存问题

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

    使用道具 举报

    该用户从未签到

    2#
    发表于 2007-3-23 16:21:57 | 只看该作者
    这个。。代码中没写释放内存吧。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-27 08:12 , Processed in 0.093558 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表