第一章-探索性能问题-profiler(1)

本文讲述了游戏开发中性能分析的重要性,强调了先在真实设备上进行基准测试,然后利用Profiler工具进行深入分析的过程。Profiler能够提供CPU、GPU、内存、音效、网络等多方面的信息,但使用时要注意其对性能的影响。作者提醒开发者避免在Editor中进行性能测试,因为Editor本身的开销可能导致数据偏差。
摘要由CSDN通过智能技术生成

作者讲了一堆。。关于发现问题和定位根本原因的重要性。这里直接略过

这一章的主要内容有以下几点:

1如何通过profiler获取运行数据

2如何通过分析profiler数据进行性能瓶颈的分析

3如何分析性能问题和定位根本原因

之后介绍了profiler的功能,profiler的各个子系统的功能如下:

1查看cpu消耗

2关于渲染和gpu的基础和详细信息

3内存的申请情况以及整体的消耗

4音效资源/数据的使用情况

5网络消息传递和操作利用率

6视频播放利用率

7关于ui性能的基础和详细信息

8全局光照数据

然后作者介绍了两种观测性能的方式,一个是用监测工具,一个是进行基准测试。

检测工具可以很好地观测到程序的内部实现,函数的调用行为,以及内存是如何被申请的等运行数据。但是刚开始找性能问题的时候就用检测工具,并不是很好的方法,因为检测工具本身会有一些性能消耗。在开发模式编译游戏的时候,额外的编译选项会被开启,导致系统会调用一些特殊的事件。这些事件会在profiler上记录和保存。这会导致在运行时产生额外的cpu和内存的消耗。如果是在editor上进行性能检测,情况会变得更加糟糕。因为editor还需要渲染一些额外的窗口和处理后台任务。尤其是在大型项目,使用profiler可能会导致应用的运行表现不同。事件产生时机以及异步调用的变化会导致出现一些异常现象。这是在使用profiler进行性能排查时必须要付出的一些代价,所以在使用profiler的时候要尤其注意这一点。

在开始分析每一行代码之前,最好先在测试设备上运行,在特定的测试样例下,获取一些初步的运行数据。测试样例可以是正常玩几秒的游戏,过场动画的播放,或者在一些关卡内进行游戏。目的是得到一个大致的用户体验,并且要在性能变差时认真观察,这些问题有时候需要更进一步的分析。

这个过程通常称之为基准测试。我们需要关注的指标就是FPS,CPU的运行情况,CPU和GPU的温度等。这些都是比较好获取的性能指标。

在进行完基准测试,并且需要进行深度分析的时候,可以用profiler进行性能检测。并且要尽可能测试更多的机型来获取运行数据。并且不要用editor进行测试,因为会有额外的性能消耗。

这里有一个提示,就是有时候会发现editor上的运行指标反而比真机更好。原因是editor会缓存一些像音效,prefab这样的数据,导致运行会更快。

总结来说就是,先在真机上运行查看是否有性能瓶颈,然后再在Profiler上查找定位该问题。Development Build会产生额外的性能消耗,用Profiler查看的数据跟实际会有一些出入。还有就是尽量不要在Ediotr上进行性能检测,因为Editor本身也有性能消耗。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五仁烧饼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值