我编写了一个 60 FPS 游戏,需要找到那些严重影响游戏循环性能的代码部分。我目前在帧的开头存储纳秒时间戳并将我的代码拆分为逻辑部分,例如“渲染粒子”或“遍历敌人 AI”。在完成每个部分的执行后,我存储自上一个部分完成以来执行代码所需的执行时间。最后,我检索总执行时间([nanoseconds now] 减去 [first nanosecond timestamp])并计算每个代码段执行时间的百分比。这使我可以显示每个部分所占的百分比,但似乎不是完美的解决方案。我猜 GC 会随机影响代码部分的执行。
有没有更好的方法可以实现甚至是 API / 分析工具来做到这一点?