我正在用Java开发一个动作平台游戏,最近刚刚完成了对敌人单位的人工智能的编码。我开始注意到,在游戏中的某些时候,它会减速和滞后,然后才能恢复正常。在这个视频上可以看到一个例子。滞后部分位于视频的中点,并有注释,因此您不会错过它:
LoGaP 06.14.2013 on YouTube
我猜它尝试执行的一些代码会成为瓶颈。这通常是内存问题还是CPU问题的症状?
更重要的是,在这种情况下,识别有问题的代码的最佳方法是什么,以便我可以分析如何优化它?我只在Java上使用过的唯一优化工具是jvisualvm,而且我只用了一段时间。这在这个场景中会起作用吗?
发布于 2013-06-15 21:22:41
性能分析中的一个常见问题是,您的方法通常可以在可接受的时间内执行,但偶尔会成为瓶颈。
分析整个运行可能对您没有帮助,因为一个较慢的调用将被所有其他常规调用所淹没。
在JProfiler中,您可以标记一个方法,以便单独保存异常的方法运行,并且可以详细检查最慢的操作。您可以使用方法统计视图查看调用分布,并将其标记为异常方法记录:
在调用树视图中,最慢的调用将标记为异常运行后缀,您可以单独调查它们的调用树:
免责声明:我的公司开发JProfiler。
https://stackoverflow.com/questions/17102199
复制相似问题