2013-03-09 85 views
0

我正在用Java制作游戏。游戏目前分为三个线程(一个spawner线程,一个更新线程和一个绘制线程)。spawner产生一个向玩家移动的敌人。大约800次产卵后,游戏开始滞后(这在某种程度上是可以理解的)。问题是我应该为每个Ai创建单独的线程,还是应该在更新线程中更新它们(这是当前情况)。哪一个会产生更好的性能?在Java性能方面处理AI的最佳方法。 (单独线程vs单个更新线程)

+0

AI之间需要发生多少通信? – TofuBeer 2013-03-09 20:12:24

+0

根本没有。唯一需要进行的沟通是在玩家和AI之间进行。 – Tikitaco 2013-03-09 20:13:03

回答

2

我建议你有比CPUS更少的关键线程。如果你有800个CPU,去寻找很多线程。如果不是的话,我预计线程池会更小。

你做了多少CPU和内存分析?性能分析比使用多线程可以实现更快的速度。

+0

使用探查器找到缓慢是最好的开始,可能是线程根本无法帮助。 – TofuBeer 2013-03-09 20:22:30

+0

@TofuBeer当我被要求查看一个系统时,我的第一个目标是通过测量定影性能问题使其速度提高10倍,这通常意味着*减少他们拥有的线程数量。 – 2013-03-09 20:29:19

+0

...特别是如果你真的有800 cpu与800²缓存一致性问题,只要你同步任何东西... – 2013-03-09 20:40:05

相关问题