当前位置:   article > 正文

【解决】Unity Profiler | Sempaphore.WaitForSignal_unity semaphore.waitforsignal

unity semaphore.waitforsignal

开发平台:Unity 2022 版本以上
开发语言:CSharp 6.0
编程平台:Visual Studio 2022
关键词:Sempaphore.WaitForSignal

问题背景


  • 开发过程中出现 Waiting to excute code… 长时间阻碍运行。
  • 使用 逐对象排查法 确认影响无法运行的游戏对象的大概位置。
  • 使用 运行再激活 方式强制运行游戏对象。
  • 使用 Profile 性能分析器查看当前运行状况,发现 CPU Usage/Others 持续高额度占用。
  • 根据 Hierarchy 分栏确认 Sempaphore.WaitForSignal 的持续运行时间较长(Self ms)且调度次数高频(Calls)。
    在这里插入图片描述

关于 Sempaphore.WaitForSignal


官方文档解释

  • 包含描述线程上的同步点的示例。若要查找它正在等待的线程,请检查“时间轴”视图中是否有在此线程之前不久结束的示例。

开发者解释

  • 这只是意味着主线程处于休眠状态,等待来自另一个线程的信号。它实际上并没有消耗 CPU 时间。渲染线程正在工作,我猜在某个时候,这个渲染线程在完成时会向主线程发出信号。

解决方法


  • 使用 Timeline 分栏查看 Sempaphore.WaitForSignal 时间轴开端前的信息。

笔者问题:确认到来自本地程序 GameCoroutine.Delay 的问题。排查是否有逻辑错误导致调用的脚本方法。
其他问题应根据实际 Profile 反馈实际问题进行处理。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/神奇cpp/article/detail/931027
推荐阅读
相关标签
  

闽ICP备14008679号