想象一个看起来像这样的Unity(2019.2.5)应用程序(不是游戏):
ScrollRect
,在此显示实际内容。 ScrollRect
内显示的面板上没有花哨的东西。没有动画,只有普通的UI组件,如Text
,Button
,Toggle
,Slider
和一些Images
。问题是所有ScrollRects
的滚动速度都有些缓慢,我想对此加以改进(即,使其平滑滚动)。看一下探查器,在一部使用了四年的老手机(LG Nexus 5X)上发现了以下内容:
因此,似乎CPU是瓶颈。但是,该应用程序没有执行任何操作(这实际上只是在显示UI)。问题是,如何改善渲染的CPU使用率?
“主线程”的时间轴中有一个有趣的小细节:
您有什么想法可能会导致35ms的演示时间?或者如何调试它以获得更深入的信息? 任何想法都欢迎。谢谢!
更新: 这是一个热节流问题:
设备冷时,每帧大约需要33毫秒,而Unity正在等待每帧15-22毫秒以进行VSync。设备变暖后,每帧突然需要大约60-70毫秒。为了验证这一点,我将手机放在了一块冰块上,自那时起,帧时间一直稳定在33毫秒。
现在的问题是:有什么可以针对它做的吗?
我刚刚将应用程序移到了LWRP,并且它感觉就像现在要花点时间才能出现问题一样,但是它肯定不是固定的。 UI到不同的画布上很可能不会有任何区别。空视图的快速测试显示了相同的问题...
您还有其他想法吗?