游戏性能测试总结

时间:2024.3.31

网络游戏性能测试方案 软件测试

针对当前游戏的架构,要开展性能测试,就需要先分析当前架构下,预计会出现哪些性能风险,服务器端和客户端分开进行分析。

服务器端:内存消耗、Cpu占用、登陆压力、单服承载、同屏承载、同地图承载、带宽

客户端:流量、帧数(FPS)、内存消耗、Cpu占用、流畅度

一.服务器端

服务器端采用的是多线程,分为逻辑线程和网络线程,分开分析:

1.逻辑线程:

假设服务器设定每个心跳耗时200毫秒,即1秒5个心跳,这是一个固定值。一个心跳循叫一帧,如果某帧需要处理时间为100毫秒,那么服务器就有50%的空闲时间;再如果某帧需要处理200毫秒,那么该线程的cpu占用则为100%。也就是说,如果服务器一帧需要的处理时间为5秒钟,那么客户端发送过来的请求经过处理后收到反馈需要的时间为(5秒+消息在网络上来回消耗),即传说中的服务器卡。

那么,要验证逻辑线程卡不卡,或者要找出某负载下逻辑线程卡的原因,则需要记录各种逻辑处理所消耗的时间。目前服务器逻辑进行分析。

2.网络线程:

假设1个角色每秒产生的消息条数为a条,那么X个角色同时在线的话,产生的总消息条数Y大概为:Y=a*x;而每个角色产生的a条消息,又分为需要广播和不需要广播的。

需要广播的消息在处理后放大n倍,如移动消息,处理完毕后需要同步给周围的角色,如果周围有m个角色的话,消息条数就由1àm,最极端的情况为消息需要同步给全服角色,消息条数会由1àX;又如私聊消息是一对一,因为不需要广播,所以处理完毕后就不会使信息量放大;最极端的情况,全服的全部角色产生的消息都是需要全服广播的,比如全部玩家都在世界频道喊话,那么产生的消息量为Y=a*X*X。

那么,要验证网络线程卡不卡,或者要找出某负载下网络线程卡的原因,则需要记录各个消息在一定时间内一定负载下的发起数量、分发数量;网络线程耗时、各种消息单种的总耗时、耗时均值、峰值;消息是否为同步消息;另外我们还可以记录当前服务器消息堆积数,以及堆积的消息种类和数量。

通过这些数据,我们可以得出网络线程cpu占用百分比,同步消息的平均同步次数;全部消息中,同步给全服的消息、同步给周围的消息、不需要同步的消息占整体消息百分比;

通过这些数据,我们可以哪些消息导致瓶颈,哪些问题导致消息量过大等;通过平均同步次数,可以得出同屏人数瓶颈、同地图人数瓶颈等;通过不同负载下的数据,还可以得出性能数据趋势,也就是说可以通过500人数压力的负载得出的数据,推断出700、1000人数负载下的性能数据;同时,我们还可以通过采集到的数据,分析哪些消息耗时高,哪些消息数量大。得出以上结论后,就可以有依据有针对性的进行相关优化。

举例:服务器在300机器人全部世界聊天时,网络线程耗时过高,消息响应延迟非常严重,但是服务器采集到的消息堆积数为0,也就是说无消息堆积。 分析:问题肯定是出在网络线程,通过代码分析,发现服务器全部接收了全部消息,所以消息没有堆积,但是服务器接收了消息后,无法全部快速处理完,

所以导致了消息响应延迟严重,就像是部门经理把手头的100个任务全部丢给1个人处理,经理手头是没有任务堆积,但是那个手下由于无法快速处理完这些任务,导致任务响应很慢。

进一步分析,发现消息主要耗时分2块:网络库消息的发送和服务器对消息的处理,比例为7:3。

问题找到了,负责网络库的研究网络库的性能,负责服务器的程序找出对应瓶颈。也可以采用另一种方案,那就是限制全服同步的消息的产生,只不过这个只是一个迫不得已的方案而已

3.接下来分析内存风险,以现在的配置,服务器内存占用的多少不用过多考虑,主要要考虑的是内存泄露,主要通过查看一点压力下运行一段时间的内存变化情况来检查

4.服务器带宽的评估,可以通过记录每个一段时间内收到和发送给客户端的数据包大小和数量来计算出每秒的数据量,然后换算出需要的带宽。bps:byte per second。需要分析的是每秒byte数,现有网络,1m的带宽(单位是bit),带宽数值跟流量的比例理论上为:流量=带宽/8,加上损耗,能到达的最大流量大概为100K

5.最后一个登陆压力,主要是验证登陆系统对于大量登陆请求的响应情况。当前情况下不用考虑,因为有已经运营的产品在验证。如果考虑这方面的性能测试的话,应该从一定负载下登陆系统的响应情况来考虑,比如100/500/1000机器人批量账号验证、批量创建角色、批量登陆游戏,采集这些数据进行分析。

6.总结,通过前面5个步骤的分析,对于前面提到的服务器端性能风险,都已经覆盖到了,剩下的就是根据这些分析设计性能测试用例了


第二篇:游戏性能测试(搭配独显)


游戏性能测试(搭配独显) 发布时间:2012-12-06 10:25 作者:Mr smile 来源:

游戏性能测试搭配独显

9534 次阅读 游戏性能测试(搭配独显)

CPU的游戏与理论性能不同,往往更注重CPU核心架构单核心运行效率,这是因为游戏的设计很复杂,现阶段的游戏开发商很难针对多核处理器进行优化,而且要考虑到多核处理器消费群体的接受度。以现阶段游戏而言,一般很少用到四核以上的CPU性能。 CPU在游戏过程中主要负责物理效果演算和AI运算,与GPU的分工明显不同。简单点说,就是“场景内角色越多,CPU性能要求越高”,我们平常游戏组队进入大型副本围殴BOSS的时候出现的“卡机”现象,就是CPU性能不足的表现。

DX9游戏测试:《星际争霸2》

游戏性能测试搭配独显

游戏性能测试搭配独显

《星际争霸2》测试成绩

● DX10游戏测试:《生化危机5》:

游戏性能测试搭配独显

游戏性能测试搭配独显

游戏性能测试搭配独显

《生化危机5》测试成绩

DX11游戏测试:《马克思佩恩3》

游戏性能测试搭配独显

游戏性能测试搭配独显

游戏性能测试搭配独显

《马克思·佩恩3》测试成绩

编辑点评:测试过程中,搭配的是GTX680用以消除显卡性能瓶颈。这三款游戏在单位时间场景内的角色模型非常多,能反映不同CPU之间的性能差距。从测试中可以看到,除了高频率的FX系列,独显平台的游戏性能依然是Core i的天下,这是因为现阶段游戏更注重CPU核心架构与频率,即单核性能,AMD的多核战略独显游戏平台体验不出优势。

现今大部分的CPU都整合了GPU,购买了CPU的同时也就购买了特定的显示核心,紧接着的测试是整合类CPU中显示核心的游戏性能,测试方向是以轻量级单机与网络游戏为主。

关于游戏帧数(FPS)的意义:游戏帧数是反映游戏是否流畅运行的标准,大多数情况下可这样归类,没有可玩性:帧数低于30FPS;可以接受:帧数30-50;流畅运行:帧数50-60;完美运行:帧数大于等于60。也就是说一般情况下帧数大于60意义不大,这时可以调高游戏画质获得更加的视觉效果。

更多相关推荐:
性能测试总结报告的模板

文档编号:编写:审核:批准:[系统名称]性能测试总结报告(V1.0)项目名称:编写日期:审核日期:批准日期:修订状况目录1、性能测试过程管理...................................…

性能测试总结

C/S性能测试研究总结协议选择问题1.如为B/S应用系统,一般采用http协议;如部分操作录制不到数据,则应具体分析系统结构,是否使用了其它协议,根据系统所用协议,进行选择。2.对于C/S结构的系统:1)先确定…

[转]Oracle的性能测试总结

[转]Oracle的性能测试总结LR测试ORACLE进行1000用户的压力模拟测试.整个压力测试耗时两天.以下是一些经验:1)压力测试过程中发现一些SQL脚本执行非常慢,进行了优化.2)最好并发测试,否则服务基…

Android客户端性能测试总结

Android客户端性能软件测试小结发布时间:20xx-3-0913:52作者:xiaowan来源:TaoBaoQATeam字体:小中大|上一篇下一篇|打印|我要投稿|推荐标签:性能测试软件测试Android手…

三代车险承保系统性能测试总结和成果展示

三代车险承保系统性能测试总结和成果展示一、测试总结三代车险承保系统性能测试从20xx年x月x日到20xx年x月x日结束,先后在测试中心环境和辽宁分公司环境进行测试,参与测试的性能测试工程师两名。测试过程中,共进…

性能测试总结之内存泄露和内存溢出[1]

性能测试总结之内存泄露和内存溢出[1]刚刚做完了一个项目的性能测试,“有幸”也遇到了内存泄露的案例,所以在此和大家分享一下。主要从以下几部分来说明,关于内存和内存泄露、溢出的概念,区分内存泄露和内存溢出;内存的…

性能测试总结之性能分析篇

其实监控和分析是分不开的两部分,监控的同时需要对数据结果进行分析,而分析的同时也需要对数据进行监控才可以进行分析。数据分析不仅需要对性能测试工具的了解,也需要对操作系统、中间件服务器、硬件、软件环境以及数据库等…

手机性能测试小结

手机性能测试小结字体小中大上一篇下一篇打印我要投稿推荐标签性能测试软件测试手机测试1测试范围关于性能测试范围的框架图2性能测试项目21模拟器测试项目211时间相关项目2111长时间待机项目手机在通过长时间待机后...

银行性能测试项目小结

1背景本次性能测试的系统是X银行营销服务系统总行版该系统使用的数据库服务器应用服务器均布署在总行机房各地分行通过WEB方式登录访问本系统系统上线后的总用户数包括各分行支行主管客户经理等在5000左右该系统采用D...

软件性能测试结果分析总结

软件性能测试结果分析总结平均响应时间在互联网上对于用户响应时间有一个普遍的标准2510秒原则也就是说在2秒之内给客户响应被用户认为是非常有吸引力的用户体验在5秒之内响应客户被认为比较不错的用户体验在10秒内给用...

初学性能测试报告

性能测试报告下面是一个简单的实例性能测试报告希望能对初学者有些帮助测试报告是一次完整性能测试的体现所以这里我给出一个完整的性能测试报告相信通过这个报告我们会整性能测试有个整体的了解知道我们在以后做性能测试时需要...

性能测试项目总结之内存泄露和内存溢出

最近大家对性能测试的内存监控挺感兴趣的有好多文章都是关于内存泄露的刚刚做完了一个项目的性能测试有幸也遇到了内存泄露的案例所以在此和大家分享一下主要从以下几部分来说明关于内存和内存泄露溢出的概念区分内存泄露和内存...

性能测试总结(36篇)