文档章节

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

cloudwiseAPM
 cloudwiseAPM
发布于 2016/09/08 10:33
字数 1654
阅读 32
收藏 0
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监控、基本运营信息获取、地域分析、组合分析、劫持分析、移动拓扑分析以及崩溃信息收集。
l 网络监控
网络是造成手机网游卡顿的最重要原因,国内三大移动运营商之间的网络互联互通一直没有得到真正解决,同时各种宽带接入商的网络质量参差不齐都会影响游戏的运营,特别是即时类游戏玩家的体验。透视宝支持对原生的网络库(NSURLSession、NSURLConnection等)和libcurl库的网络请求(http,https)监控,监控指标包括响应时间趋势、吞吐率趋势、HTTP错误率趋势、网络失败率、请求错误率对比、错误追踪等,同时能够以域名为维度统计所有HTTP请求的信息,包括请求名称、平均响应时间、吞吐率、HTTP错误率、网络失败率、请求次数等。
由于libcurl是用C写的,不能使用hook机制,也没有字节码可以改写,所以透视宝采取直接在libcurl库源码中人工埋点,再重新打包成libcurl.a库文件的方式实现监控,不用改变头文件的引用方式,不用调用额外的接口,更不用写额外的代码等,同时iOS和Android两个平台可以互用。如果开发者对替换原生libcurl.a库的方式有疑虑,我们还提供了自动埋点的方式来收集libcurl网络库的网络请求性能数据。
l Socket监控
手游客户端与服务端通讯通常会使用Socket端口,因此Socket监控也是必不可少的。透视宝能够监控一段时间内App与服务器通信时,建立连接响应最慢的N个主机(Server端)、向Server端写或读时响应最慢的N个主机以及异常数最多N个主机;监控连接的主机IP、端口、开始时间及连接耗时,标记出有异常的Socket;提供单次连接的详细分析,包括设备的详细参数、连接耗时、DNS解析耗时、向Server端写或读时的耗时及字节变化趋势、异常堆栈等;分析一段时间内App与服务器通信时发生异常的情况,包括异常用户数、异常次数、使用用户数、发生异常的App版本及异常数、异常变化趋势。
l H5页面性能监控

           

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

              

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

© 著作权归作者所有

cloudwiseAPM
粉丝 26
博文 135
码字总数 278629
作品 0
海淀
私信 提问
开源的跨平台游戏开发框架--Cocos2d-x

Cocos2D-X 是全球知名的开源跨平台游戏引擎,易学易用,目前已经支持 iOS、Android、Windows 桌面、Mac OS X、Linux、BlackBerry、Windows Phone 等平台。Cocos2d-JS 统一了使用 JS 进行开发...

王哲Walzer
2012/01/15
122.5K
8
历数2013年优秀的开源游戏引擎与开源游戏项目

2013年是移动游戏爆发的一年,也是开源游戏爆发的一年!在这里,我们历数一下2013年都有哪些优秀的开源游戏诞生,还有哪些优秀的开源游戏技术解决方案诞生! 开源跨平台2D客户端引擎 Cocos2...

大鸡蛋
2014/01/15
21K
11
历数2013年优秀的开源游戏引擎与开源游戏项目

2013年是移动游戏爆发的一年,也是开源游戏爆发的一年!在这里,我们历数一下2013年都有哪些优秀的开源游戏诞生,还有哪些优秀的开源游戏技术解决方案诞生! 开源跨平台2D客户端引擎 Cocos2...

大鸡蛋
2014/01/15
30
0
关东升老师双十一大回馈!购课送书啦~~~

关东升老师的大名想必各位都听说过吧~~~ 【关东升老师的简介】 精通多种IT技术,参与设计和开发北京市公交一卡通百亿级大型项目,开发国家农产品追溯系统、金融系统微博等移动客户端项目,...

51CTO学院
2017/11/08
0
0
游戏开发之--开源软件1--cocos2d-x(c++)|openbor

Cocos2d-x 是一个支持多平台的 2D 手机游戏引擎,使用 C++ 开发,基于OpenGL ES,基于Cocos2d-iphone,支持 WOPhone, iOS 4.1, Android 2.1 及更高版本, WindowsXP & Windows7,WindowsPhon...

donghan
2013/11/04
309
0

没有更多内容

加载失败,请刷新页面

加载更多

java通过ServerSocket与Socket实现通信

首先说一下ServerSocket与Socket. 1.ServerSocket ServerSocket是用来监听客户端Socket连接的类,如果没有连接会一直处于等待状态. ServetSocket有三个构造方法: (1) ServerSocket(int port);...

Blueeeeeee
今天
6
0
用 Sphinx 搭建博客时,如何自定义插件?

之前有不少同学看过我的个人博客(http://python-online.cn),也根据我写的教程完成了自己个人站点的搭建。 点此:使用 Python 30分钟 教你快速搭建一个博客 为防有的同学不清楚 Sphinx ,这...

王炳明
昨天
5
0
黑客之道-40本书籍助你快速入门黑客技术免费下载

场景 黑客是一个中文词语,皆源自英文hacker,随着灰鸽子的出现,灰鸽子成为了很多假借黑客名义控制他人电脑的黑客技术,于是出现了“骇客”与"黑客"分家。2012年电影频道节目中心出品的电影...

badaoliumang
昨天
16
0
很遗憾,没有一篇文章能讲清楚线程的生命周期!

(手机横屏看源码更方便) 注:java源码分析部分如无特殊说明均基于 java8 版本。 简介 大家都知道线程是有生命周期,但是彤哥可以认真负责地告诉你网上几乎没有一篇文章讲得是完全正确的。 ...

彤哥读源码
昨天
18
0
jquery--DOM操作基础

本文转载于:专业的前端网站➭jquery--DOM操作基础 元素的访问 元素属性操作 获取:attr(name);$("#my").attr("src"); 设置:attr(name,value);$("#myImg").attr("src","images/1.jpg"); ......

前端老手
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部