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

如何发现客户端软件中的内存泄露?(08-06-06)(获奖名单已公布)

本主题由 51testing 于 2008-6-13 18:17 解除高亮

如何发现客户端软件中的内存泄露?(08-06-06)(获奖名单已公布)


这里的客户端软件包括C/S系统的客户端和B/S系统中的客户端控件,当用户使用客户端软件时,如果发现我们的软件会吃内存,那是很丢面子的事,有哪些好的测试方法呢?希望大家能踊跃提出自己的看法。

感谢会员cherrycl2008提供此精彩问题!如果你也有问题想提出来和大家一起讨论,请点击此处>>说不定下期讨论的问题就是由你提出的哦,请快快参与吧!

非常感谢各位会员积极参与,截止至6月13日17:30分,从该贴所有评论中选出部分作出精彩评论的会员予以奖励。礼品和积分将在下周内送出。



获奖名单

奖项

获奖名单

奖励

答案链接

一等奖

huior

当当购物卡50元

31#

二等奖

cynthiagu

300论坛积分

23#

fmsbai5

29#

三等奖

252090366

100论坛积分

5#

dongchanglin

18#

jasonxu

13#

功能测试

TOP

一般会被要求测试服务器端有无内存泄漏,很少碰到客户端的。客户端和服务器端不同在个数,一般一个用户一个客户端,所以这个主要就看长时间用下来有没有泄漏。看客户端都做了什么吧,手工也行,手工有困难就工具模拟这个过程,保持一段时间,看系统资源咯,暂时想到这个。

TOP

回复 1# 的帖子


模拟客户操作,在客户端还没运行之前打开任务管理器查看内存情况,在客户端运行之前再次查看内存情况.通过比较来判断.

TOP

引用:
原帖由 wishwing 于 2008-6-10 09:33 发表
模拟客户操作,在客户端还没运行之前打开任务管理器查看内存情况,在客户端运行之前再次查看内存情况.通过比较来判断.
能不能说明白点?
每天成长一点,在不远的将来会变成参天大树

TOP

C/S模式下的软件的话,使用一些专业的内存检测工具,以前做开发的时候在调试的时候用到过,不过那个工具是基于开发环境的,是一个组件.
B/S模式下的软件,可以使用LR,在LR运行的时候,查看操作系统性能计数器中的Private Bytes(Windows)和Resident size(KB)(UNIX/Linux).

如有不当之处,请指教!

TOP

用工具吧,我上次在网上看到过一种关于内存泄露的工具,名字叫做rationl purify这个工具可以测试.

如有不当之处,请指教!

TOP

开发过程中可通过一些工具检查
测试过程中,可在客服端模拟程序运行情况,用性能监视器查看内存情况。
此人还未死

TOP

这个问题不太懂...我也想知道呢...可能黑客或者开发更了解这方面的问题...

[ 本帖最后由 dabeixiong 于 2008-6-10 15:08 编辑 ]
被那次闪电劈到的大北熊...

TOP

想多了解这方面的知识

TOP

搬板凳听课,正好现在经常碰到这种问题

TOP

内存泄露


内存泄露是一个比较棘手的问题,应该通过压力测试来解决,以前曾经遇到过类似的问题,开发一个扫描仪的测试工具做扫描仪的压力测试。具体的不说了,就是设定一组不同分辨率很深度的参数,来驱动扫描仪完成多次扫描。工具做完以后,就开始测试,单张的扫描没有问题,证明驱动成功,后来做了100 次以上的扫描时,电脑运行速度越来越慢,显示内存压力比较大。后换一更大内存,仍然再扫描一段时间后死机。经过开发人员两天两夜的反复实验,后来是因为一行程序在使用完内存以后没有释放,导致每一次扫描的内存都没有返回系统,所以用多大内存都没有问题。

所以测试建议从以下方面考虑:
估计一应用程序使用内存的最大值。估计可能产生内存泄露的情形,多次执行相关的操作,可以选用自动化工具当作辅助手段,反复操作达到极限看能不能让机器死机。如果所有这些都没什么问题,那应该没有内存泄露的情形存在。

TOP

回复 2# 的帖子


嗯,突然想到,还可以白盒测试,如果可以拿到代码的话,c++test的BugDetective

[ 本帖最后由 doud 于 2008-6-10 19:12 编辑 ]

TOP

内存泄露必定会导致内存的大量消耗,从而使得系统会调用硬盘空间(虚拟内存)作为内存来使用,磁盘的负荷就大,因此磁盘的IO会比较大,同时CPU的占用率也很高,如果是服务器的话,磁盘的吞吐量会降低很大。因此通过监控磁盘的IO、吞吐量和CPU三个数据便可以发现软件存在的内存泄露,同样的方法也可以使用Loadrunner来监控服务器端软件是否存在内存泄露。

TOP

简单地说就是IO值比较高,吞吐量低,CPU占用率高,内存占用大,这有可能是存在内存泄露,我先前太过于肯定,这里更正一下。

[ 本帖最后由 jasonxu 于 2008-6-13 14:41 编辑 ]

TOP

1、CPU点用率高,内存占用大就能确定是内存泄露吗?

2、使用Loadrunner来监控服务器端软件,怎样查看内存是否泄露了

TOP

引用:
原帖由 jasonxu 于 2008-6-10 20:34 发表
简单地说就是IO值比较高,吞吐量低,CPU占用率高,内存占用大,基本可以确定存在内存泄露
送你个鸡蛋,我今天启动程序,向我得oracle10G所在的服务器发送大量数据,在enterprise mananger console看到性能分析说IO吞吐量低,从资源管理器看到CPU占用率高,内存占用大,你可以基本确定存在内存泄露 ?!
CPU占用率高,内存占用大情况很多种,不一定就是内存泄露

TOP

也想知道答案,等着听课,最好有什么工具推荐

TOP

purify、boundchecker都可以。客户端是C实现吗?

TOP

基本上通过手工的来测这个真的太难了,如果你感到这个软件有这方面问题,就去找专业工具去测吧!
借我三千虎骑,复我浩荡中华!饮马恒河畔,剑指天山西;碎叶城揽月,库叶岛赏雪;黑海之滨垂钓,贝加尔湖张弓;中南半岛访古,东京废墟遥祭华夏列祖.汉旗指处,望尘逃遁-敢犯中华天威者,虽远必诛!

TOP

如何发现客户端软件中的内存泄露?


我们公司是用LR中专门可以添加一项,监控CPU的使用率,通过并发用户进行压力测试获知内存泄露的情况。
如有问题,请同行批评指正!!

同时我代表全部的测试同行,感谢版主,想到这样的一个“每周一问”,让我们收益匪浅,希望该栏目越办越好,越办越精彩,谢谢!!

TOP

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