【问题标题】:Unity Profiler PostLateUpdate.PresentAfterDrawUnity Profiler PostLateUpdate.PresentAfterDraw
【发布时间】:2018-03-02 14:48:47
【问题描述】:

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

问候比约恩

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

【问题讨论】:

    标签: c# performance unity3d


    【解决方案1】:

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

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

    但实际上,这些信息还不够,您甚至没有说明您在什么设备上运行(iOS、Android?),您应该尝试从 Instruments (iOS) 或 Traceview 获得更好的分析信息(Android) 或类似的。 至少,向我们展示下钻取的细节,或者例如 PlayerUpdateTime 内部发生的事情。

    【讨论】:

    • 我不关心 playerupdate 时间或任何事情,我可以清楚地看到 PostLateUpdate.presentafterdraw 会导致这些性能峰值,所以这就是我想要修复的,但我会尝试 traceview
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-10
    • 1970-01-01
    • 1970-01-01
    • 2012-12-31
    • 2012-07-26
    相关资源
    最近更新 更多