2017-02-22 76 views
-1

在过去的几个月里,我一直在用java制作一个2d的格斗游戏,但一直有同样令人讨厌的问题,在几次关闭并重新运行游戏之后,它总是会突然剧烈减速至设定的速度/帧速率。这发生在我不是很棒的笔记本电脑以及我的游戏PC上,所以我不认为这是性能问题。Java 2D游戏在多次运行后运行缓慢

由于某种原因,它也与我启动计算机的时间有关,就好像我重新启动计算机一样,它会平稳运行,然后不久我再次运行它时,它会回到慢速运行状态。

我正在使用swing定时器和paintComponent方法来创建游戏。

谢谢

+0

你知道有很多东西可以。静态变量,一个无限循环,一个不关闭的线程,您正在创建对象,但不会让GC破坏它。这是为了扩大你的问题。尝试调试,使用JProfiler等 – Gatusko

+0

太多可能的原因。它甚至可能是因为你正在睡觉你的事件派发线程。或者你正在做太多的事情,你不应该在你的paintComponent()方法中给你一个错觉,认为它是滞后的或者无反应的。这可能是您的低效逻辑,太多嵌套循环等等。 – user3437460

+0

您需要[profile](http://stackoverflow.com/q/2064427/230513)了解更多信息。 – trashgod

回答

0

简介代码。分析器可以帮助您查找内存泄漏和热点。 JProfiler很好,但你必须付钱。我用VisualVM

+0

更多[here](http://stackoverflow.com/q/2064427/230513)。 – trashgod