游戏掉帧,怎么排查是哪部分代码导致的?

可是只有在单位变多的时候,才会出现掉帧,一开始单位少的时候是正常60帧的,为什么不是一开始就被锁帧?

既然这样,就可以忽略丢帧的情况。因为丢帧会占用一部分的call时间。我之前做过一个测试,同样的机器,在60hz的显示器上能只能达到45fps,但在144hz的显示器上可以达到65fps,大约提升20fps左右。这种情况你可以考虑在【性能】面板中继续监控Task程序树下的子函数占用情况,优化占比较高的函数方法。或者你也可以先找一个高刷新的显示器验证一下说的这种方法。

按照我的想法,你的Task任务低于16.6ms的一半。所以在高刷新的显示器上,比如144hz,应该可以达到100fps以上,当然,这一切都是我的猜测,因为你没有提供任何可以在线运行的demo。

总之对于丢帧( Dropped Frame)的情况,你都可以认为是显示器拒绝了显卡的图像信号,在Dropped Frame的时候,显示器仍然显示的是上一帧的画面。

参考文章: 帧率和丢帧 - YiZhong’s Blog (qyizhong.cn)

你那些角色是spine动画吗?
大量spine也是会严重掉帧的, spine的性能并不太好