2017-02-22 49 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