基于 Cocos2d-x 的手机游戏性能监控 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cloudwise
V2EX    游戏

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

  •  
  •   cloudwise 2016-09-08 10:29:11 +08:00 2553 次点击
    这是一个创建于 3388 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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 错误率、网络失败率和响应时间,在玩家投诉之前准确发现、定位和处理网络、服务故障,确保用户反馈得到真正高效的解决。
    目前尚无回复
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5515 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 06:34 PVG 14:34 LAX 22:34 JFK 01:34
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86