游戏开发论坛

 找回密码
 立即注册
搜索
查看: 186333|回复: 1

[原创]关于游戏测试-内存泄露客户端版本

[复制链接]

7

主题

27

帖子

42

积分

注册会员

Rank: 2

积分
42
发表于 2012-3-7 23:14:00 | 显示全部楼层 |阅读模式
[em17]
文/tv陈子昂
测试对象:flash等游戏

必须使用工具:windows下带资源管理器和“性能”

环境:采用不编译/不看代码黑盒的办法

基于系统性的做性能测试,效果佳,时间长。白盒动态也有,使用T-Profiler来寻找泄漏效果中等,时间短,需分析,不过还是通过黑盒的业务来分析最后的结果。加载/卸载多个SWF模块,但是存在一个调用次数的问题,容易误诊,可能和我技术有关(也无法关联测试handle,calls)。白盒静态,效果佳,极难,时间中等。如果单纯丢份代码分析“水晶一样的报表”给程序,我想完全无效果,马路边找个mm,都可以10分钟教会她如何玩该环节的白盒静态。废话说完,入正题。

内存泄露在产业中,以验证客户端为主。服务端不会出现out memory of error之类的错误,除非是那种运载很久后台的程序。

内存泄露原理这里就不多做介绍了。下面的方法可以通过图的指标来基本查看到。泄露的回收率,每次增加多少,平缓期后,回收多少。当发现被测方性能不够理想,可以采用冲击的办法,用多少次的行为来使现有的内存翻倍等。

那么内存泄露被确定哪些步骤出现后,会划分出3个类型,主要目的是为了确诊。不同的内存泄露类型决定了可能是哪部分出的问题,这种做法是一环扣一环的。

内存泄露分为3个类型,前2类,常发性和偶发性的危害并不大,通过划分模测试点和对于测试点进行行为组合的分析后,可以基本全部找到。偶发性可以借助wins性能监察工具来查看。隐性会在后面介绍。

可供参考的截图(winxp)



ProcessExplorer可替换上图的。win7自带的也十分好用。

如果使用了flash应用计数器,一定会产生内存泄露。

非黑既白的教条:

引用计数法优点是运行效率高,但该方法无法清除存在循环引用关系的对象集合。

有没有使用垃圾收集器(garbageCollection),垃圾回收器的写法是什么?

最小化浏览器会不会导致内存的回收,回收的比率是?

实例成员?静太成员?



如果看代码白盒,也可以做。当你了解代码对于内存分配的原理。这点是最好的办法。

做性能记注需要花大量的时间关注系统,那么也就不难了。

以上为客户端部分内容,至于服务端部分,还是用远程的好。

tv猫 game小屋  http://blog.sina.com.cn/chendamao1983

0

主题

18

帖子

133

积分

注册会员

Rank: 2

积分
133
发表于 2016-3-30 17:17:59 | 显示全部楼层
好文,如果能更详细点就更好了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2024-4-20 15:55

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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