2017-02-22 4 views
-1

Я делаю 2-я файтинг в java за последние несколько месяцев, но всегда имел такую ​​же досадную проблему, что после нескольких раз закрытия и повторного запуска игры она всегда будет внезапно резко замедляется до заданной скорости/частоты кадров. Это происходит на моем не очень большом ноутбуке, а также на моем игровом ПК, поэтому я не думаю, что это проблема производительности.Java 2D-игра работает медленно после нескольких прогонов

По какой-то причине это также связано с тем, когда я запускаю свой компьютер, как если бы я перезагрузил свой компьютер, он будет работать бесперебойно, а вскоре после того, как я запустил его снова, он вернется к работе в замедленном режиме.

Я использую качающиеся таймеры и метод paintComponent для создания игры.

Thanks

+0

Вы знаете, что есть много чего. Статические переменные, бесконечный цикл, ниток, который не закрывается. Вы создаете объекты, но не позволяете GC уничтожить его. Это широкий вопрос. Попробуйте debuggin, используйте JProfiler и т. Д. – Gatusko

+0

Слишком много возможных причин. Это может быть даже из-за того, что вы спите в своем потоке отправки событий. Или вы делаете слишком много вещей, которые вы не должны делать в своем методе paintComponent(), давая иллюзию, что он отстает или не реагирует. Это может быть ваша неэффективная логика, слишком много вложенных циклов и т. Д. – user3437460

+0

Вам понадобится [профиль] (http://stackoverflow.com/q/2064427/230513), чтобы узнать больше. – trashgod

ответ

0

Профилируйте код. Профайлер может помочь вам найти утечки памяти и горячие точки. JProfiler хорош, но вы должны заплатить за это. Я использую VisualVM

+0

Подробнее [здесь] (http://stackoverflow.com/q/2064427/230513). – trashgod

Смежные вопросы