Unity Profiler PostLateUpdate.PresentAfterDraw

时间:2018-03-02 14:48:48

标签: c# performance unity3d

所以我最近发布了我的Android应用程序,在我的手机上一切正常,但在我的朋友的旧手机上它的滞后,所以我使用Unity的分析器来确定性能瓶颈,并发现了一些名为:“PostLateUpdate。 PresentafterDraw“导致CPU上出现性能峰值。可悲的是,没有关于该线程的描述(?),我可以在互联网上找到的唯一可能的原因是太昂贵的着色器,但我没有真正使用任何。这也出现在我的开始屏幕上,其中没有任何东西真正发生,除了那个开始按钮扩大和缩小的尺寸,以及当我真正玩游戏时。谁能告诉我其他什么东西可能导致这些尖峰?非常感谢

GreetsBjörn

https://i.stack.imgur.com/4oVN4.png

1 个答案:

答案 0 :(得分:1)

“Present”是用于将渲染结果呈现(或交换或复制)到帧缓冲区以供显示的GPU命令。通常,当你看到它需要很长时间时,这意味着渲染线程完成了向GPU发出命令(绘制调用),它只是等待GPU完成渲染。

所以是的,它通常表示渲染时间很长。如果你的游戏是v-synced,那么你的主线程也需要比平时更长的时间,因此渲染开始得很晚,你错过了vsync,所以现在必须等待另一帧。鉴于你捕获的时间,我怀疑这是这种情况。

但实际上,这还不够信息,你甚至没有说出你在运行什么设备(iOS,Android?),你应该尝试从Instruments(iOS)或Traceview获得更好的分析信息(Android)或类似。 至少,请向我们展示在当前向下钻取的详细信息,或者在PlayerUpdateTime内部进行的详细信息。