- 发布日期:2024-09-02 05:59 点击次数:99
6月24日,腾讯WeTest质量云首场专题直播《十年磨一剑,匠心铸造PerfDog》圆满收官。
本次直播,WeTest邀请MTSC中国互联网测试开发大会主席、腾讯资深测试技术总监、明星性能工具PerfDog创始人曹文升(Awen)老师,为大家揭秘明星产品背后的起源、诞生、成长故事,并全面解读了PerfDog创新指标的涵义与作用,与线上观众共同探讨移动产品质量管理的的前沿技术与应用实践。
曹文升(Awen)
腾讯资深测试技术总监 PerfDog创始人
从业17年,早期负责腾讯PC游戏客户端性能、兼容性等测试专项工作,现担任腾讯测试技术中心总监。
拥有10年+游戏引擎开发及性能优化、工具平台开发、专项技术测试及游戏开发工作经验,全程主导PerfDog、PerfSight、CrashSight、Bench3D等多个专项工具平台建设,参与腾讯多款知名移动手游项目性能专项测试工作。
对客户端及游戏引擎技术有深刻的认知,特别是在性能测试优化相关专项领域有国民级游戏应用实战经验。
下面让我们一起来回顾,Awen老师在直播过程中的精彩演讲吧。
厚积薄发,十年匠心打磨
PerfDog团队从2010年就开始聚焦游戏引擎,为腾讯游戏提供性能专项服务,伴随着PC和移动游戏的高速发展,期间,PerfDog团队也推出了PC游戏性能工具“Bench3D”,之后推出了移动全平台性能工具“PerfDog性能狗”,并于19年正式对外开放,截至今年已服务全球10W+企业客户。
PerfDog起源:痛
PerfDog始于游戏,缘起”大吉大利“。2018年,“大吉大利”风靡全球,直接带动了同年全球PC硬件销量提升40%。Awen老师在直播中介绍到:当时,研发团队希望在保持玩法不变,拥有PC相同体验的情况下将这款游戏做成移动版,这是团队首次尝试在移动平台上制作次世代画质的游戏,且是首次使用UE引擎,对整个团队都是非常大的挑战。
在性能专项测试过程中,团队首先要面临的就是iOS与Android平台两座大山所带来的测试痛点。做过iOS专项测试的同学应该了解,iOS平台的Xcode工具,只能在Mac或者Debug环境下进行测试。面对UE引擎游戏的百万级别代码量,在不出现任何差错的情况下,编译Debug至少需要一天的时间,整个测试效率极低。且无从了解市面上的竞品性能如何?行业标准是什么?
其次是Android环境,Android环境给人的印象是比较开放的,因此,自然就会有很多手机厂商推出自己的系统版本,并对应了近千种不同的测试工具,但市场上却没有一款工具能够做统一的测试分析。此外,每款测试工具都可能存在兼容问题和不准确性,成为了当时团队面临的最大问题,导致了大量复测与分析误导。
Awen老师说道:在遭遇到了千种“痛之后,痛定思痛,团队产生了一定要解决这些问题的想法,也清楚的明白自己需要的是什么,一款能够支持移动全平台、极简化、即插即用的测试工具,PerfDog因此应运而生,并在项目内部取得了不错的效果。后来,PerfDog推广到多个项目去使用,我们又发现了些新的问题,项目中不同职能的人员,包括开发、测试、产品,甚至是美术都会有自己的产品需求。面对大量上报的需求,经过团队内部的思考,我们将大约50%的需求定义为有效需求,并进一步分类为数个通用需求,经过了大概一年的时间的打磨,最终成为了19年底对外开放时,大家所看到的PerfDog的样子。
PerfDog成长:用户体验良性生态闭环
从游戏方角度来说,终端用户玩到的游戏版本一定是研发团队在当时条件下能够做到的最佳体验的版本。当时,移动版的”大吉大利“被公司内外都认为是一款大作,各大手机厂商也非常重视,他们会将在研及未发布的机型,或是已经发布的旗舰机型拿来测试验证游戏在他们的手机上的性能表现,提前解决性能问题。在这个过程中,我们发现手机厂商和游戏方一样,也是非常重视用户的性能体验,PerfDog也因此自然而然地开放给手机厂商,双方一起努力为用户提供极致的性能体验。
再后来,我们发现很多To C用户(例如科技大V、博主)也经常使用PerfDog做手机性能评测。Awen老师回忆:起初我们还很疑惑,因为当时评测手机性能表现的主流方式是通过BenchMark跑分,经过与用户的交流探讨,很多用户表示手机只是BenchMark跑分高并不能全面的代表真实性能体验,PerfDog可以更好地发现手机性能漏洞或者Bug。
同时,由于大V带有的粉丝属性,当发现了手机的性能漏洞,会通过媒体快速地放大,可能会直接左右用户的购买意向。因此,手机厂商也非常重视,一旦发现性能问题就会快速的去解决优化。有时候,一些性能问题也不一定是手机厂商的问题,而是一些更底层硬件(GPU、芯片)的问题,当手机出现性能问题,手机厂商也会快速推动硬件厂商去做升级优化。
最终我们发现游戏厂商,手机厂商,硬件厂商都希望能给用户优秀的性能体验,而科技大V与博主则能推动性能体验向更好、更高方向发展,整体形成了良好的生态闭环。
PerfDog成长:服务更多用户,不限于游戏
PerfDog最早是服务游戏,在推出时也打上了游戏的标签。但在内部使用的过程中,我们发现很多非游戏的产品也经常使用PerfDog,PerfDog不仅可以帮助到游戏,也能帮助到很多非游戏的APP,基于此,我们也逐步把PerfDog开放给了一些外部的厂商。再到后来,PerfDog不仅是赋能给手机、芯片厂商,还包括一些IOT设备厂商,这也是PerfDog逐渐开放的一个过程。
在整个开放过程中,为了给到用户一个放心、准确专业的使用体验,我们同时也在不断地提升PerfDog的软性实力,我们花了大概半年多的时间去配合国家计量院进行大量的测试验证,最终以高分获得了国家计量院的认证证书,在隐私合规方面,我们也联合了内部专业的法务团队一起去执行相关的操作与设定。
Awen老师坦言:最早的PerfDog,我们构想的是想做一款项目内部好用的工具,之后觉得服务公司内部就足够了,再之后觉得服务国内厂商就好了。但后来,我们发现公司有非常多的游戏合作伙伴,比如说Supercell,Roit、EA等全球各地的公司都希望可以使用这款工具,之后韩国的三星、SK等公司也希望可以将PerfDog开放给他们使用。所以在去年7月份,我们正式推出了PerfDog国际版并正式面向全球开放。今年3月,PerfDog亮相全球顶级游戏开发者大会GDC。
除了软实力,PerfDog的产品也一直在进化,从早期的常规工具到PerfDog云平台、云服务,再到PerfDog Service工业化性能管线,从常规测试到即将推出的深度性能解决方案PerfDogPro。同时,我们也衍生出了聚焦游戏的全新解决方案:用户游戏性能解决方案PerfSight和用户游戏异常崩溃解决方案CrashSight,感兴趣的同学可以点击下方链接申请免费试用。
https://wj.qq.com/s2/10356354/7d98/
Awen老师表示:PerfDog未来将会覆盖更多的终端(手机、手表、汽车、主机、VR、TV、PC等),同时我们希望能够在今年底进行一个全量的升级,使PerfDog更好的支持APP应用的性能专项测试,包括视频、浏览器、弱网络等分析,并为产品研发运营的全生命周期提供支持,帮助大家孕育出更高品质的产品。
PerfDog指标解读
PerfDog中很多指标都是根据团队的经验总结出来的,或是首创的真实反映性能的指标。在第二环节中,Awen老师选取了大家比较关注的三个指标:Jank卡顿、Smooth稳帧指数、帧能耗(FPower)并逐一解读。
Jank卡顿
在苹果WWDC18年开发者大会上,苹果提出了一个FramePacing的概念,如下图所示:
将左边40帧的画面与右边30帧的画面进行对比,我们会发现左边的画面明显出现了一次卡顿,通过FrameTime进一步观察,可以看到左边40帧的画面在C帧时出现了一个超过100ms的单帧耗时,右边30帧的画面则是非常均匀的33ms/帧。因此,左图虽然帧率较高,但给予用户的感知体验是比较差的。
早期的安卓一直给人卡顿、不流畅的固有印象,为了改变这种状况,13年Google发布了划时代系统Android4.4,同时提出了黄油计划-Jank,并提供了Jank的计算思路,以更量化的方式展示系统流畅度。
通过上述两个案例可以看出,单看FPS(帧率)无法反映出真实的流畅度与用户体验,需要结合多维度的指标去分析。Awen老师指出:当时,我们团队采用的是FPS与Jank两个指标去分析游戏游戏性能,但我们发现,统计出的数值和用户体验感知仍存在差别,经过了大量的测试与验证,我们认为Google的Jank值判断过于严格,是无法真正反映用户真实体验的。
经过团队的改良升级,我们推出了改良后的PerfDogJank指标并推广开放给了行业。但很快,我们遇到了新的问题:19年的设备普遍是60帧刷新率,最近的旗舰机型都是在120帧以上的刷新率,行业内硬件设备的快速提升使用户对性能体验的要求越来越高,即便是微小的卡顿也可能会被用户感知到,原先的Jank标准也已经无法满足性能测试的需求。因此,在最新的PerDog版本中,我们推出了全新的指标SmallJank,可以精准反映出游戏过程中的微小卡顿,还原真实用户体验。
稳帧指数Smooth
稳帧指数Smooth可以对游戏或者应用画面平稳度提供更精确的评估。首先看下图的帧率截图可知,整体的帧率基本没有变化,但当我们细看FrameTime可以发现,单帧的耗时波动是非常大的,说明在帧率没有变化的场景下,内部仍存在一定的卡顿。且每次卡顿的时长、边界不同所产生卡顿结果也是不同的。我们还可以看到下图右边的毛刺,可以发现依然会存在些微小卡顿,这样就会导致测试结果中卡顿次数是一样的,但给用户的感观体验却是不同的,这时候就需要更精确的指标去解析。
因此,我们推出了Smooth指标(公式如图所示),目前已正式上线新版本PerfDog,处于大规模验证的阶段。Awen老师表示,之后可能会将这个公式开放给大家,供大家使用。
帧能耗(FPower)
很多项目团队与我们沟通,表示希望可以有更科学、量化的指标来评估功耗表现,这也是帧能耗(FPower)的由来。
Awen老师介绍道:作为用户,肯定希望游戏/应用能够以高帧率、高画质、发热低、耗电少的状态运行。但这样会导致一开始手机运行流畅,画面、帧数均在理想水平,但随着手机能耗的增长,发热随之增长势必会导致降频影响帧率,进而影响整个用户体验。我们再进一步去解析游戏/应用到每一帧的耗时和能耗解析,如图所示:
我们可以得知:帧率=等待+运算,功耗=运算+调动,优化运算才能真正优化功耗。
之前,大家优化能耗可能会采取降帧等措施,虽然降低了功耗,却影响了用户的体验,不能算是一个正向的优化。只有当帧率没有变化,功耗降低,或者是帧率提升,功耗没有变化才是降低了单帧功耗的正向优化,所以,我们提出了一个更精准的指标FPower=功率/帧率,这也是腾讯目前做功耗优化时比较重要、精准的指标。
QA环节
在直播尾声,Awen老师与现场观众进行了火热的答疑环节。接下来小编带大家一起回顾下精彩答疑环节~
Q:PerfDog在更底层的指标获取上是否会有一些突破或者计划?
Awen:这个是一定会有的,因为我们也希望能够给到用户更深度、全面的底层指标信息。现在我们也是积极和一些硬件厂商,例如高通、Imagnation等展开合作,相信在不久的将来,PerfDog有能力为用户提供硬件、甚至是底层驱动的更全面深度的信息,帮助大家更好、更快速地定位性能问题。
Q:在游戏项目中,各种数值参数对客户端的影响是怎样的?以及哪些指标优化是一款新游戏需要关注的?
Awen:就从APP的角度来看,游戏是非常复杂的,仅次于操作系统。在游戏测试过程中,单看某一个或者几个指标是无法反映出真实的游戏性能标准的,之前也有同学提过相似的问题,我们通常建议是统一的去看各项指标。再者,不同的游戏类型的区别是非常大的,性能指标的差别也非常大,大家在项目过程中不能随便去指定一个标准来要求项目,我建议大家可以适当参考行业内相似竞品的性能指标进行优化,目前,PerfDog已经提供了这个功能,大家可以多多尝试。
Q:请问PerfDog是否考虑更好的支持APP的应用测试?
Awen:是的,其实我们前面也已经提到了,大概从去年年初,我们就已经开始考虑应用的测试了。今年年底,我们计划推出一个更好的版本来支持应用的测试,并包括弱网络环境测试等。
Q:PerfDog是否可以实现一个账号同时测试多设备?
Awen:可能大家没有注意到,单个账号在一台电脑上测试多部手机是PerfDog已经支持的能力,在PC端多次启动PerfDog软件,就可以同时测试多台手机了,目前支持一个账号同时测试3台手机。大家可能会问:为什么只支持3台呢?因为在性能测试过中,PerfDog会显示大量的性能参数与UI,如果多部手机同时长时间测试可能会导致测试结果终端或者缺失,所以我们建议最多是在3台手机上进行测试。