Unity代码执行中随机出现0.5毫秒延迟的原因排查求助
Unity代码执行中随机出现0.5毫秒延迟的原因排查求助
各位大佬好,我最近为了玩票做了个国际象棋AI,但性能问题快把我搞疯了。调试的时候我发现一个奇怪的现象:哪怕没有实际业务代码在跑,代码执行过程中也会随机冒出0.5ms左右的延迟。
为了排除项目其他代码的干扰,我专门搭了个极简测试项目——整个项目里只有挂在GameManager对象上的这一段脚本:
using System; using System.Collections; using System.Collections.Generic; using UnityEngine; public class Game : MonoBehaviour { DateTime _lastDateTimeCheck; // Update is called once per frame void Update() { _lastDateTimeCheck = DateTime.Now; //Random code PrintTimeSinceLastCheck(); } void PrintTimeSinceLastCheck() { DateTime now = DateTime.Now; TimeSpan timeSinceLastCheck = now - _lastDateTimeCheck; if(timeSinceLastCheck.TotalMilliseconds > 0) { Debug.Log(timeSinceLastCheck.TotalMilliseconds + " ms"); } } }
运行这段代码后,控制台时不时就会打出超过0ms的耗时记录,大多集中在0.5ms左右。我有点纳闷:Unity后台是不是在运行什么我完全不需要的服务?毕竟我做的是国际象棋游戏,很多Unity默认的后台进程可能根本用不上。
为啥我揪着这0.5ms不放呢?因为我的象棋AI在落子前,某个核心函数要被调用50万次,要是每次能省哪怕这么一点点时间,整体性能提升都会相当可观。
我还在手头的几个Unity版本里都测了一遍:2021.3.6f1、2022.3.42f1和2019.4.36f1,结果居然完全一致——每个版本都会出现这种随机延迟。有没有大佬能帮我分析下原因,或者给点针对性的优化思路呀?
内容来源于stack exchange
相关产品推荐
相关产品推荐

