Adreno GPU上Android 游戏开发介绍 (4)

如何判断应用的性能瓶颈?

关于帧率的问题

在开始使用 Snapdragon Profiler 之前,或许你已经清楚的知道有些性能问题需要自己处理。同时,即便你不这样做,也建议检查应用程序的当前整体性能以确定性能瓶颈。

帧率是一个理想的起点。游戏通常以每秒 30 或 60 帧 (fps) 的速度运行,而对于虚拟和扩展现实 (VR/XR) 应用程序而言,有时需要更高的帧率。

其中,一方面是平均帧速率,它衡量应用程序的平均运行速度。 另一方面是帧率的一致性。 即使平均帧率接近目标帧率,偶尔的长帧也可能会错过该目标。用户体验会受到卡顿和故障的影响,并且运动不流畅,因此你的应用程序将从优化中受益。

如果您的应用未优化,平均帧率可能低于你的预期,应用将无法达到其理想的性能水平。 如果你优化了应用程序,帧率可能更接近平均水平,但帧率仍旧可能会出现周期性峰值。 尖峰阻碍了动画,因此您需要通过识别问题和修改代码来消除这些尖峰。

在这两种情况下,Snapdragon Profiler 都可以让你更加直观的了解应用的 fps 性能水平。 下面的屏幕截图显示了 42.022 fps 的平均值(浅蓝色线)。

在这里插入图片描述

虽然平均 42 fps 可能就足够了,但范围(蓝线)会周期性地低至 37.322 fps。 这表明该应用程序正在丢帧,这会损害性能。

另外,值得注意的是,应用程序应选择达到其平台的垂直同步(Vsync) 速率的除数或倍数的帧率。 由于典型平台具有 60Hz Vsync,因此 30Hz 或 60Hz 是唯一可接受的目标值。

排查潜在的瓶颈

虽然没有单一的指标可以告诉你导致性能问题的原因以及如何解决这些问题,但 Snapdragon Profiler 可以检查数十个指标,让我们更加清晰地了解应用程序是如何与硬件交互的。

跟踪捕获模式屏幕截图中的部分对应于以下三个重要的指标:

  • 渲染阶段——Snapdragon Profiler 中的每个渲染阶段都是一个衡量应用程序在 GPU 上执行的指标。 每个数据轨道都是该指标的一个子集,轨道数量因应用程序而异。 在下面的屏幕截图中,绿色、品红色和紫色栏目显示各个表面,而对应栏目下的轨迹代表相关的渲染阶段。

在这里插入图片描述

  • GPU 活动 – 显示 CPU 和 GPU 之间交互的系统指标。

  • CPU 调度(“跟踪内核 - 调度 CPU”)– 一种系统指标,可提供应用在每个 CPU 内核上的执行情况概览。 可以查看应用程序的哪些部分在何处运行,以及是否存在调度或线程竞态问题。

在这里插入图片描述

以上这些指标可以帮助你排查性能可能受限的三个主要领域:GPU、CPU 和 Vsync,或显示器上的垂直同步刷新。

受 GPU 限制的应用程序

在图形密集型应用程序中,建议从 GPU 开始消除过程。

在 Snapdragon Profiler 的实时视图中,GPU % Utilization 是一个顶级指标。下面的屏幕截图显示了 26-38% 范围内的利用率。

在这里插入图片描述

将其与以下屏幕截图进行比较,显示利用率在 98-100% 范围内:

在这里插入图片描述

后者表明该应用程序受 GPU 限制。

除了实时视图,Snapdragon Profiler 中的跟踪捕获模式提供了另一个参考点。 如果应用程序不受 GPU 限制,则可能会出现 GPU 活动的差距。

在这里插入图片描述

如果应用程序受 GPU 限制,则 GPU 执行可能会延迟,并且 GPU 可能会不断渲染表面。

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值