微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

基于Cocos2d-x的手机游戏性能监控

Cocos2d-x是一个著名的开源移动端游戏框架,可以在iOS,Android,黑莓BlackBerry等操作系统中建立和运行Cocos2d-x游戏,国内的《捕鱼达人》、《三国塔防-蜀传》、《我叫MT》和海外的《愤怒的小鸟大作战》、《BADLAND迷失之地》等手游都是用Cocos2d-x开发的。


由于运行环境、代码兼容性等问题,Cocos2d-x手游一样会出现崩溃、卡顿、加载缓慢、资源消耗过多等问题,因此游戏运营商需要准确了解用户环境里的游戏性能,而通过埋点获得的日志数据并不能完整反映网络和服务端问题造成的故障,所以游戏开发商需要能够覆盖游戏运行全部技术栈和所有端到端环节的应用性能管理工具来准确发现、定位和解决问题。今天我们就来看看云智慧应用性能产品——透视宝是如何实现Cocos2d-x手机游戏的性能监控。
Cocos2d-x的跨平台原理
为了充分发挥硬件性能,手机游戏通常使用Native App开发模式,这就造成开发商要为iOS 和Android平台用户开发不同的应用,无论是产品迭代还是运行维护都非常麻烦。Cocos2d-x在iOS,Android等移动平台之上,封装了一层C++接口,从而屏蔽了平台的差异性,通过平台宏来控制使用哪个平台的代码,向开发者提供C++接口调用
这些接口主要包括UI、事件和网络,封装UI主要是使用OpenGL ES的接口来写UI,封装事件和网络,均是使用C++接口对原生接口进行一层封装。因此Cocos2d-x的跨平台原理就是:APP->调用公共C++接口->调用平台实现
透视宝对Cocos2d-x游戏监控特点
综上所述,Cocos2d-x是在原生接口之上封装了一层C++接口,而透视宝SDK支持对Cocos2d-x原生的网络请求监控,也支持Cocos2d-x常用的底层libcurl网络库的监控,此外还支持H5监控,Socket监控、基本运营信息获取、地域分析、组合分析、劫持分析、移动拓扑分析以及崩溃信息收集。
网络监控
网络是造成手机网游卡顿的最重要原因,国内三大移动运营商之间的网络互联互通一直没有得到真正解决,同时各种宽带接入商的网络质量参差不齐都会影响游戏的运营,特别是即时类游戏玩家的体验。透视宝支持对原生的网络库(NSURLSession、NSURLConnection等)和libcurl库的网络请求(http,https)监控,监控指标包括响应时间趋势、吞吐率趋势、HTTP错误率趋势、网络失败率、请求错误率对比、错误追踪等,同时能够以域名为维度统计所有HTTP请求的信息,包括请求名称、平均响应时间、吞吐率、HTTP错误率、网络失败率、请求次数等。
由于libcurl是用C写的,不能使用hook机制,也没有字节码可以改写,所以透视宝采取直接在libcurl库源码中人工埋点,再重新打包成libcurl.a库文件的方式实现监控,不用改变头文件的引用方式,不用调用额外的接口,更不用写额外的代码等,同时iOS和Android两个平台可以互用。如果开发者对替换原生libcurl.a库的方式有疑虑,我们还提供了自动埋点的方式来收集libcurl网络库的网络请求性能数据。
Socket监控
手游客户端与服务端通讯通常会使用Socket端口,因此Socket监控也是必不可少的。透视宝能够监控一段时间内App与服务器通信时,建立连接响应最慢的N个主机(Server端)、向Server端写或读时响应最慢的N个主机以及异常数最多N个主机;监控连接的主机IP、端口、开始时间及连接耗时,标记出有异常的Socket;提供单次连接的详细分析,包括设备的详细参数、连接耗时、DNS解析耗时、向Server端写或读时的耗时及字节变化趋势、异常堆栈等;分析一段时间内App与服务器通信时发生异常的情况,包括异常用户数、异常次数、使用用户数、发生异常的App版本及异常数、异常变化趋势。
H5页面性能监控


免更新、易维护的HTML5页面被广泛应用于手机游戏通告、活动页面、支付页面等场景,而透视宝能够通过对H5性能数据的分析,找出加载网页时存在的问题。透视宝的HTML5监控主要包括页面加载性能分析和Ajax性能分析,分别从响应时间和JS/Ajax错误的维度对页面的加载进行性能分析。
运营分析
在竞争激烈的手游市场,优秀的线上游戏运营是一款游戏从同质化严重的竞品中脱颖而出的前提条件,然后传统运营工具无法提供对用户端性能体验的准确监控和分析,当接到用户反馈的游戏卡顿等问题时只能按照预设套路去解答,并不能及时解决用户的问题。透视宝从用户体验的角度提供对手游应用的运营分析,包括接入方式分析、运营商分析、系统版本分析、应用版本分析、设备分析、地域分析、崩溃分析、劫持分析等,同时能够将地域、运营商、接入方式进行组合,多维度深入分析cocos应用性能

此外,透视宝提供移动应用拓扑图,可以帮助运维和运营人员实时掌握Cocos2d-x游戏的整体运行状态,包括应用正在使用的自身服务和外部服务,通过拓扑图可以查看应用整体的HTTP错误率和网络失败率,以及每个服务的HTTP错误率、网络失败率和响应时间,在玩家投诉之前准确发现、定位和处理网络、服务故障,确保用户反馈得到真正高效的解决

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


    本文实践自 RayWenderlich、Ali Hafizji 的文章《How To Create Dynamic Textures with CCRenderTexture in Cocos2D 2.X》,文中使用Cocos2D,我在这里使用Cocos2D-x 2.1.4进行学习和移植。在这篇文章,将会学习到如何创建实时纹理、如何用Gimp创建无缝拼接纹
Cocos-code-ide使用入门学习地点:杭州滨江邮箱:appdevzw@163.com微信公众号:HopToad 欢迎转载,转载标注出处:http://blog.csdn.netotbaron/article/details/424343991.  软件准备 下载地址:http://cn.cocos2d-x.org/download 2.  简介2.1         引用C
第一次開始用手游引擎挺激动!!!进入正题。下载资源1:从Cocos2D-x官网上下载,进入网页http://www.cocos2d-x.org/download,点击Cocos2d-x以下的Download  v3.0,保存到自定义的文件夹2:从python官网上下载。进入网页https://www.python.org/downloads/,我当前下载的是3.4.0(当前最新
    Cocos2d-x是一款强大的基于OpenGLES的跨平台游戏开发引擎,易学易用,支持多种智能移动平台。官网地址:http://cocos2d-x.org/当前版本:2.0    有很多的学习资料,在这里我只做为自己的笔记记录下来,错误之处还请指出。在VisualStudio2008平台的编译:1.下载当前稳
1.  来源 QuickV3sample项目中的2048样例游戏,以及最近《最强大脑》娱乐节目。将2048改造成一款挑战玩家对数字记忆的小游戏。邮箱:appdevzw@163.com微信公众号:HopToadAPK下载地址:http://download.csdn.net/detailotbaron/8446223源码下载地址:http://download.csdn.net/
   Cocos2d-x3.x已经支持使用CMake来进行构建了,这里尝试以QtCreatorIDE来进行CMake构建。Cocos2d-x3.X地址:https://github.com/cocos2d/cocos2d-x1.打开QtCreator,菜单栏→"打开文件或项目...",打开cocos2d-x目录下的CMakeLists.txt文件;2.弹出CMake向导,如下图所示:设置
 下载地址:链接:https://pan.baidu.com/s/1IkQsMU6NoERAAQLcCUMcXQ提取码:p1pb下载完成后,解压进入build目录使用vs2013打开工程设置平台工具集,打开设置界面设置: 点击开始编译等待编译结束编译成功在build文件下会出现一个新文件夹Debug.win32,里面就是编译
分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!http://www.captainbed.net前言上次用象棋演示了cocos2dx的基本用法,但是对cocos2dx并没有作深入的讨论,这次以超级马里奥的源代码为线索,我们一起来学习超级马里奥的实
1. 圆形音量button事实上作者的本意应该是叫做“电位计button”。可是我觉得它和我们的圆形音量button非常像,所以就这么叫它吧~先看效果:好了,不多解释,本篇到此为止。(旁白: 噗。就这样结束了?)啊才怪~我们来看看代码:[cpp] viewplaincopyprint?CCContro
原文链接:http://www.cnblogs.com/physwf/archive/2013/04/26/3043912.html为了进一步深入学习贯彻Cocos2d,我们将自己写一个场景类,但我们不会走的太远,凡是都要循序渐进,哪怕只前进一点点,那也至少是前进了,总比贪多嚼不烂一头雾水的好。在上一节中我们建