zoukankan      html  css  js  c++  java
  • Snapdragon——1.定位游戏瓶颈

    1. 怎么定位瓶颈?

    第一步,看fps;(1)平均fps;(2)帧率连贯性,有没有卡顿、掉帧。平均为42帧,但会掉到37. Trace tab下的rendering stage、gpu activity、cpu Scheduling是主要量度。

     rendering stage表示gpu上的 执行。有surface,通道。

      gpu activity能看到cpu和gpu间的交互。

    cpu scheduling能看到cpu每个核心的执行。看是否有调度的问题。

    1. 看是否gpu是瓶颈。在realtime签页,看gpu利用率,如果gpu利用率很高;在trace tab下,看surface之间有间隔,说明gpu瓶颈;

     

    下面这张gpu利用率98到100,说明gpu是瓶颈。

    另外,在trace下,gpu Activity合gpu stages下面。也能参考,如下图,gpu不是瓶颈:

     而,如下图,gpu瓶颈:

    2. 如果gpu不是瓶颈,那么看cpu是否是瓶颈。

    cpu利用率有时候很低,但cpu还可能是瓶颈。因为cpu是多核心的。这时候看cpu scheduling。

     cpu6好像是瓶颈。

    然后看这个核心什么是瓶颈。

    可以看到,SatisfyConstraints函数是瓶颈。修改函数、弄到多个线程后,

    cpu不再是瓶颈了。

    (3)垂直同步瓶颈

    如果不是gpu、cpu,那么可能是垂直同步受限。也就是说游戏跑得能达到屏幕显示那个速度了。可以看到这样的:

     帧时间大约是16ms(60fps),在帧结尾,cpu和gpu都在等surface渲染。也就是说游戏已经跑的屏幕的刷新速度一样了。

    但是即使游戏已经垂直同步受限了,依然有优化的潜能,除了提高帧率以外的。

    更多app的问题在于耗电量大。所以,依然要优化代码,用更少的资源、运行在温度更低的机器上,做更少的工作,实现更高的帧率。在低端设备上,性能依然很好。

     参考链接:https://developer.qualcomm.com/software/snapdragon-profiler/app-notes/identify-application-bottlenecks

  • 相关阅读:
    SQL进阶系列之2自连接
    SQL进阶系列之0窗口函数
    SQL进阶系列之1CASE表达式
    Python for Email
    数据分析的统计基础5
    利用Python openpyxl操作Excel
    SQL基础篇(MICK)
    数据分析的统计基础4
    数据分析的统计基础3
    数据分析的统计基础2
  • 原文地址:https://www.cnblogs.com/Shaojunping/p/12342257.html
Copyright © 2011-2022 走看看