暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

看华为20级技术专家怎么做性能优化

haha视界 2022-11-19
1124
  • 介绍

    • 作者

    • 主题

  • 第1级,标准化-单机游戏评测模型

    • 定义游戏评测标准模型

    • 研发测试工具-Game perceptio

    • 分析流程(版本->场->秒->帧)

    • 帧级别分析方法

    • 1. 面临问题

    • 2. 开发和测试“统一语言”

    • 3. 聚焦于头部游戏、top场景进行分析

    • 4. 严格把控产品质量

    • 5. 总结

  • 第2级,自动化-端云系统

    • 1. 面临问题

    • 2. 高效测试

    • 3. 方案高质量验证

    • 4. 游戏分析自动化

  • 第3级,抽象化-3D负载模型

    • 1. 面临的问题

    • 2. 跳出APP看游戏

    • 3. 达到效果

  • 游戏测试能力全栈建设

  • 总结

介绍

作者

黄然,华为图形图像技术专家,20级。

北航计算机专业硕士,先后就职于AMD、华为公司。曾从事Radeon图形驱动开发达9年,2016年加入华为终端, 一直从事游戏调优和图形渲染相关的开发和测试工作。工作以来,一直聚焦在图形渲染领域,已经累计十多年GPU软硬件相关工作经验。

主题

华为终端游戏测试之路

核心围绕:手机公司、游戏厂商、用户,在3个不同阶段,怎么通过工具自动化的解决问题。

第1级,标准化-单机游戏评测模型

1. 面临问题

场景一:
公司内部开发和测试的对话:

测试:王者荣耀有点卡,帧率不达标,已经提单了,赶紧查原因,否则过不了TR4A

开发:我感觉不卡呀,另外你测的不准,我这边自测没问题

测试:问题很难复现,测试又很耗人力……

场景二:
手机用户给我司的反馈:

用户:貂蝉释放大招掉帧,手机太卡

我司:我们记录下来,反馈给内部研发人员定位。

用户:……陷入漫长等待

场景三:
游戏公司和我司的对话:

我司:发现xx型号手机出现间断性帧率较低的情况,而且竞品也出现这个情况

游戏公司:您反映这个问题我们没有遇到,要不您带手机来一趟我们这儿复现?

2. 开发和测试“统一语言”

定义游戏评测标准模型

结合公司内部,友商,测评机构,行业标准等分析各种指标和具体的用户体验影响:

找到真正影响用户体验的技术指标。比如启动速度只要做到行业中上即可,但卡顿相关指标要做到行业第一。

对内,形成自身的可以迭代的游戏评测标准模型:

除了行业常规的帧监控外,还提出了帧间均匀度、触控延时等指标。

对外,推广标准:

(备注:TAF,全称是电信终端产业协会,是可以直接给工信部贡献标准的组织。)

对外推广标准的好处显而易见,比如行业测评中,华为手机排行第一【毕竟一直按自己的标准中优化,时间上属于抢跑】。

研发测试工具-Game perceptio

参考XCode等各类调试工具,研发了单机版测试工具-Game perceptio,实时显示数据。
工具包含维度:

  • Phone basic info: Product model, Chipset, SW Version,Resolution, Battery capacity, Screen brightness, Volume ...

  • Game basic info: Package name, Resolution ...

  • FPS

  • Power: Current, Voltage

  • CPU/GPU/Battery/system_h Temperature

  • CPU/GPU/DDR Load and Frequency

  • Memery

  • SDK info: Game sence, Network delay …

  • Graphics: Drawcall, Vertices …

分析流程(版本->场->秒->帧)

Android的Systrace,Arm的Streamline,Mali的MGD等多工具灵活分析各类问题。

帧级别分析方法

3. 聚焦于头部游戏、top场景进行分析

4. 严格把控产品质量

游戏APP改不了的,那就由手机厂商来改。背靠海思,有强大的技术支撑。这也是华为手机和友商拉开差距的竞争点。对外宣传为GPU Turbo。

相比其它部分手机厂商对游戏APP的优化主要包括:

  • 启动速度优化:主要关注文件系统性能,CPU绑核提频等boost。其实这块对用户来说带来的用户体验提升bing没有那么重要。这块只要做到行业中上水平就可以及格了。

  • 运行卡顿优化:部分优化也是提高最低CPU频率,input boost等。

这部分厂商很难深入到GPU层进行分析和调优。

终端技术合作 TGPA:
TGPA属于GPM SDK中的一部分,腾讯通过联合终端厂商,打造了一整套软硬协同的技术解决方案,打通手机ROM和游戏应用,实现统一高效对接。为业务提供下载体验优化、振动特效、性能优化、XID设备标识、网络检测和文件捞取等解决方案。
具体可以参考:
https://gcloud.tencent.com/pages/products/tgpa.html
https://image.qsm.qq.com/tgpa/腾讯移动游戏终端技术优化白皮书.pdf

备注:腾讯的商业化意识很强 :)

Adaptive Performance:则是unity提出的方案,具体可以参考:https://docs.unity3d.com/Packages/com.unity.adaptiveperformance@4.0/manual/index.html

Unity和国内国内公司合作新闻时间线:
小米 2016年;
腾讯 2019年;
一加手机 2022年;
OPPO 2022年;
vivo 无;

可以看到,手机行业的竞争已经从单打独斗的做好自己走向了上下游合作的端到端深耕模式。流行叫法“卷”,专业说法:精细化。

5. 总结

通过技术上的上下游打通,能做到只要能抓到的问题,都能尽可能的解决。完成单点突破。

第2级,自动化-端云系统

1. 面临问题

完成了单点问题的深度分析能力建设后,接下来就是量的问题了:

  • 版本多: 产品和版本多,测试工作量太大,手工测试效率低

  • 场景多: 实验室覆受环境和人力限制,测试覆盖不够

  • 用户多: beta问题定位困难,日志分析效率低

  • 维度多: 单帧能效分析需要构筑测试方法,游戏画面异常也需要关注

2. 高效测试

游戏自动化架构

GP工具演化到端云平台:

后台大数据平台-概览:

按条件宣传游戏场数:

查看某个游戏监控数据:

3. 方案高质量验证

荣耀20 PRO作为2019腾讯UCL高校电竞联盟挑战赛官方指定用机,全程助力手机性能分析。

4. 游戏分析自动化

细粒度分析工具-图像帧抓取回放 - HiReplay

优化和改进开源的RenderDoc工具,做到数据的抓取和回放。

游戏画质异常检测 - HiImage

第3级,抽象化-3D负载模型

1. 面临的问题

解决了中期的批量自动化的问题,就会遇到后续可维护性问题。

  • 游戏越来越多,全量覆盖时间长,不利于版本快速评估

  • 需要降低对游戏应用依赖,提升调整自由度

  • 特效调试评估效率低

2. 跳出APP看游戏

单纯按游戏应用角度来看问题,人力的正常幅度是对数曲线,而游戏更大可能是指数曲线,游戏数量和人力的矛盾不能简单的调和。
跳出APP来看游戏,以一个通用的游戏来说,无外乎涉及 模型、 纹理、阴影、粒子、bloom等维度,游戏app的性能质量问题,也就无外乎是这些场景下出现的。通过对游戏的特性分解,做到按特性的开关来分析问题,提出了3D负载模型。

根据模型来做特性的控制进而分析问题:

3. 达到效果


    1. 快速评估芯片平台游戏性能、能效


    1. 准确验证方案收益

游戏测试能力全栈建设

至此,完成游戏测试能力全栈建设

总结

  • 大部分公司能做到第一级在行业里面就算还不错的公司了,做到第二级算一流公司,做到第三极,可以算是top公司

  • 订标准:不只是中公司内部定义测试验收标准,而要进一步把这个标准做成行业标准。腾讯WeTest也是类似思路。

  • 商业化:这套系统如果单独出来创业,也是绰绰有余的,就看当事人想不想了。

  • 职业发展:找到喜欢的行业技术,深扎下去,才更好形成技术人的竞争优势,也是一条相对容易的发展路线。

  • 测试岗职业发展: 要将自身定位为“质量保证”岗,重视产品的质量工程效能维度,而不是简单的“手动测试”岗,更容易扩展职业发展路径。怎么定义产品质量,怎么保证产品质量,怎么更快的保证产品质量,怎么保障更多的产品质量,怎么分析产品质量;如何更省的做到质量保证。

  • 不要轻视任何行业和岗位,不要看不上做测试的同事,任何事做到极致,都会形成自己的方法论和跨界能力,实力自然也很强。

欢迎交流

个人微信

做过Android系统开发,App开发,前端,后端;喜欢用Linux、MacOS。

做过技术管理,带过几十号不同岗位的小伙伴:前端、App、后端、测试、产品、项管

目前闲云野鹤一名。

欢迎交流技术、管理、职场等等合法的话题😊

文章转载自haha视界,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论