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

2016-09-08 10:29:11 +08:00
 cloudwise
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 错误率、网络失败率和响应时间,在玩家投诉之前准确发现、定位和处理网络、服务故障,确保用户反馈得到真正高效的解决。
2180 次点击
所在节点    游戏
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/304746

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX