C# Unity Profiler PostLateUpdate.PresentAfterDraw

C# Unity Profiler PostLateUpdate.PresentAfterDraw,c#,performance,unity3d,C#,Performance,Unity3d,因此,我最近发布了我的android应用程序,在我的手机上一切正常,但在我朋友的旧手机上却很落后,因此我使用Unity profiler来确定性能瓶颈,并发现一种叫做“PostLateUpdate.PresentafterDraw”的东西正在导致cpu上的性能峰值。遗憾的是,没有关于该线程的描述(?),我在互联网上找到的唯一可能的原因是着色器太贵了,但我并没有真正使用任何着色器。这也出现在我的startscreen中,除了startbutton在大小上的扩展和缩小,以及我实际玩游戏的时候,什么都

因此,我最近发布了我的android应用程序,在我的手机上一切正常,但在我朋友的旧手机上却很落后,因此我使用Unity profiler来确定性能瓶颈,并发现一种叫做“PostLateUpdate.PresentafterDraw”的东西正在导致cpu上的性能峰值。遗憾的是,没有关于该线程的描述(?),我在互联网上找到的唯一可能的原因是着色器太贵了,但我并没有真正使用任何着色器。这也出现在我的startscreen中,除了startbutton在大小上的扩展和缩小,以及我实际玩游戏的时候,什么都没有发生。有谁能告诉我还有什么其他原因会导致这些尖峰?提前多谢

欢迎比约恩

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

因此,是的,它通常表示渲染时间较长。如果您的游戏是v同步的,那么也可能发生的情况是主线程比平时花费更长的时间,因此渲染开始较晚,并且您错过了vsync,因此present必须等待另一帧。考虑到你被捕的时间,我怀疑这里的情况是否如此

但事实上,这还不足以继续下去,你甚至没有说你在什么设备上运行(iOS,Android?),你应该尝试从Instruments(iOS)或Traceview(Android)或类似设备上获得更好的评测信息。
至少,请向我们展示在“当前”下深入查看的详细信息,或例如PlayerUpdateTime中的内容。

我不关心playerupdate时间或其他任何内容,我可以清楚地看到,PostLateUpdate.presentafterdraw会导致这些性能峰值,因此这是我想要修复的,但我会尝试traceview