UWA 两周年 | 优化就是在和时间赛跑

news/2024/7/10 3:30:44 标签: 优化, 性能测评, unity, 深度支持, 资源检测

原文链接:https://blog.uwa4d.com/archives/UWA_Anniversary2.html

UWA满两周岁了。在这两年时间里,我们完成了产品的设计和研发;进行了近6000次线上性能测评,测试帧数近8400万帧;完成了1600次线上资源检测,检测了157万个AssetBundle,检测资源数近558万个,每天有上千名开发者活跃在UWA网站和社群中汲取知识。从初露头角到逐渐被游戏圈的从业者了解和熟知,UWA究竟做出了哪些努力?


一、发布三大优化工具,为研发团队节省时间成本

作为游戏/VR应用性能优化平台,UWA目前提供:性能测评优化资源检测与分析和UWA GOT 三大优化工具。而 UWA Blog 和 UWA Answer是开发者们之间知识分享的交流社区。

请输入图片描述
UWA 提供的产品和服务

性能测评优化是UWA成立后第一个开放给开发者的优化服务,通过真人真机对项目测试并提供行之有效的性能报告和优化方案,从宏观上分析总体CPU性能、GC调用频率和引擎各模块性能等,同时也深入剖析内存管理、资源使用以及逻辑代码在运行时的效率瓶颈。

下图为UWA性能检测与优化的测试数据。近一年,UWA的性能检测次数达4990次,相比一周年时增长了390%;检测的帧数达 7095万帧,增长了400%。

请输入图片描述
现在已有不少研发团队养成了每周五打版本、周一看报告的习惯。他们说,这是他们最喜欢的节奏。

在过去的一年里,我们推出了大量的新功能。
请输入图片描述
同时我们也不断优化用户的体验,增加了一些辅助用户理解和使用的功能,比如UWA Tips,不仅提醒用户哪个性能参数存在风险,还能一键链接到相关的技术博客搜寻优化对策。

在服务开发者的过程中,UWA的思路就是和时间赛跑:在最短的时间里,帮助研发团队找出最高效的优化方法,将性能优化的时间逐步缩短,从而为项目的顺利上线保驾护航。
请输入图片描述

请输入图片描述
手游《我一点也不可口》,使用UWA 线上测评后两周内,将大于33ms的CPU耗时占比从46%骤减至1.7%。

除了性能测评之外,我们的资源检测工具通过分析和定位包体资源的冗余问题,来实现减小包体、减小内存以及提升加载速度的目的。迄今为止,资源检测的次数已经达到1600次,检测的累积AssetBundle数到达157万余次。资源检测的AssetBundle数量相比一周年时增长了550%;检测的资源数则增长了520%。
请输入图片描述

该工具一个出众的特点就是“快”!用户上传项目的AssetBundle包后(无须工程源码),该工具即刻执行,并在几分钟之内反馈资源的打包情况。不仅如此,通过报告中提供的相应解决方案,用户在几天甚至几小时之内就可以掌握资源冗余的根本原因,并大幅改善包体资源的冗余情况。

UWA GOT的诞生:让测试更灵活、更易掌控

随着以上工具被越来越多的开发者使用,我们也收到了大量的反馈和建议,其中一点是研发团队希望能更自由地测试项目性能, 并且能够本地查看和分析这些数据。为了满足这个需求,UWA GOT应运而生。作为一个可以在本地进行测试、上传、查看并分析数据的工具,用户再也无须为搭建服务器的复杂性而烦恼,测试的流程也更灵活、更易掌控。该工具目前支持Performance Overview、Mono Memory Analysis 和 Runtime Asset Tracker三大功能。


二、除了UWA提供的三个优化工具之外,研发团队还能获得哪些资源?

UWA Blog 是我们为开发者搭建的知识交流社区,旨在实现更具实战经验的知识分享,这里的文章源自大量的优化经验总结和周而反复的测试验证,大大降低了用户盲目试错的成本。该社区一经推出就吸引了不少开发者的关注,并成为大家在研发中时常用到的知识库。
请输入图片描述

UWA Blog:这里已经汇集了超过百篇的技术文章,不仅有UWA 工程师的经验总结,更有民间高手给大家分享自己的优化技巧。

形上谓道、形下谓器

如果说UWA Blog提供的是理论知识,那么UWA问答则是“具体分析、具体解决”。大家每天遇到的绝大部分技术问题其实都是非常琐碎的。其底层的原理可能是一致的,但往往由于开发环境不同、设备硬件不同和项目需求不同等而千差万别。对于这种情况,我们只能具体案例具体分析。因此,我们推出了UWA问答。一个好的问题,可以让提问者和回答者同时获益。我们希望可以建立这样一种环境,让中国的游戏开发者可以提出优秀的问题,并同样得到更为优秀的回答。我们也希望可以营造这样一种氛围,让大家乐于分享,而能力也在互助中增长。
请输入图片描述
除了以上UWA日常能提供的工具和服务之外,UWA还不定期举办了各种技术交流活动。我们希望通过更为直接的方式与大家互动,让更多的开发者能了解并使用到UWA提供的资源和服务。

请输入图片描述


三、解决你的问题,才是优化

“答案永远在现场”,这是我们一直秉持的理念,也是我们坚持进驻团队的原因。只有到现场查看项目的真实制作情况,与研发团队进行面对面地沟通,我们才能了解这个项目的背后到底经历了什么,才能拿出真正有用的方案去解决问题,这正是UWA深度优化所做的事情。每一个项目,我们都会拿出十天左右的时间,将我们的注意力完全渗入到项目中的各个模块,去探索它们的性能瓶颈并揭开它们背后的故事。在别人眼里,优化就是短时间内把性能“神奇”般地提升,而在我们眼里,优化跟“神奇”没有任何关系,优化就是“针对你的问题,一次又一次、不厌其烦地试验、摸索并最终找到一条最适合你的路”。我们认为,解决你的问题,才叫优化目前UWA的深度优化测试项目总计56份,总计报告页数5,939页,字数140.2万字,平均每份报告100页以上、2.3万字,游戏品类涵盖了MOBA、MMORPG、ARPG、ACT、FPS、沙盒等。
请输入图片描述


四、让市场上不存在任何一款因为性能而被诟病的手游

在UWA做性能优化服务的这段时间里,见证了手游品质的稳步增长。随着手游的精品化趋势越来越显著,性能问题也正日益凸显。从上个月我们汇总并发布的MMO、ARPG手游性能报告中也可窥见一斑。
请输入图片描述
上面这条不断向上攀升的曲线,让我们感到优化这件事任重而道远。创业两年对于UWA来说仅仅是个开始,中国有数百万的游戏开发者,每天在各大渠道上有近千款游戏在迭代更新,而任何一款无不都凝聚着大家的心血和期待。我们希望UWA能帮到任何一个项目,哪怕是提速一毫秒。

简单优化优化简单。这是UWA成立之初的愿景,细分到每个阶段,就是将优化的过程变得简单,再简单些。我们会继续打磨工具,加强分析。未来,UWA将陆续增加对GPU性能、Lua性能和能耗方面的深度支持;同时,我们也会提供更便捷省心的服务,想开发者所想,急开发者所急。

最后,也感谢大家一路的信任和鼓励,未来的UWA,将以更稳健的节奏和开发者一路并行。



http://www.niftyadmin.cn/n/1031984.html

相关文章

通过资源定义方式创建一个haproxy的pod进行负载均衡

通过资源定义方式创建一个haproxy的pod进行负载均衡 yaml文件 [rootk8s-master manifes]# cat haproxy.yaml --- apiVersion: apps/v1 kind: Deployment metadata:name: rs1namespace: default spec:replicas: 1selector:matchLabels:app: nginx1template:metadata:labels:a…

k8s资源调度

k8s资源调度 Scheduler调度器做为Kubernetes三大核心组件之一, 承载着整个集群资源的调度功能,其根据特定调度算法和策略,将Pod调度到最优工作节点上,从而更合理与充分的利用集群计算资源。其作用是根据特定的调度算法和策略将Pod…

工作负载型控制器的应用

工作负载型控制器的应用 工作负载控制器(Workload Controllers)时kubernetes的一个抽象概念,用于更高层次对象,部署和管理pod。 常用工作负载控制器: Deployment:无状态应用部署StatefulSet:有状态应用部署DaemonSet…

Service 对外暴露与应用

Service 对外暴露与应用 Service Kubernetes Service定义了这样一种抽象:逻辑上的一组 Pod,一种能够访问它们的策略 —— 一般被称为微服务。这一组 Pod 可以被 Service 访问到,一般是经过 selector实现的。 举例:考虑一个图片…

Unity图片优化神器 - Dither算法进阶方案

原文链接:https://blog.uwa4d.com/archives/2001.html 这是侑虎科技第288篇原创文章,感谢作者喵小逗供稿,欢迎转发分享,未经作者授权请勿转载。当然,如果您有任何独到的见解或者发现也欢迎联系我们,一起探讨…

【求知探新】《为谁而炼金》UI界面加载性能分析

原文链接:https://blog.uwa4d.com/archives/2006.html 【求知探新】是UWA新推出的栏目。在UWA团队做性能优化的过程中,常常会遇到一些未知的问题,在这里我们将分享UWA研究这些问题的完整过程。当然需要说明的是,一个好的问题没有标…

利用k8s部署Java项目

利用k8s部署Java项目 [rootk8s-master ~]# tree javaweb/ javaweb/ ├── Dockerfile └── files└── reduce-beta-1.0.jar制作镜像 [rootk8s-master ~]# cat javaweb/Dockerfile FROM openjdk:18-jdk-alpineCOPY files/reduce-beta-1.0.jar /usr/local/reduce-beta-1.…

布料系统原理浅析和在Unity手游中的应用

原文链接:https://blog.uwa4d.com/archives/2008.html 这是侑虎科技第291篇原创文章,感谢作者贾伟昊供稿,欢迎转发分享,未经作者授权请勿转载。当然,如果您有任何独到的见解或者发现也欢迎联系我们,一起探讨…