гуру там,
Я относительно новичок в libGDX (и в целом в Java-программировании) и у меня есть вопрос, касающийся использования приложений libGDX в оперативной памяти, но я не смог найти ответ для онлайн.
Несколько дней назад, когда я настраивал пример игры из книги «Разработка Java-игр с LibGDX», которую я сейчас читаю, я заметил, что использование этой игрой оперативной памяти резко возрастало, когда ее оставляли в покое примерно на 1 час. Мой Linux-монитор ресурсов начался с ~ 120 МБ и до того времени, когда я его закрыл, достигал 1300 МБ. Я уже связывался с автором по этому вопросу, так как я проходил мимо его книги построчно и все еще получал такое поведение!
Помимо возможных утечек в его примерах, я решил копнуть глубже и создал пустое LibGDX-приложение, используя самый последний gdx-setup.jar (v. 1.9.9), и решил некоторое время запустить его.
Я протестировал это на своей рабочей станции, используя Ryzen 2700X, 32 ГБ оперативной памяти и Linux Mint 19.1.
Интересно, что пустое приложение показало похожее, но не столь радикальное поведение, когда объем используемой оперативной памяти продолжал расти с ~ 50 МБ до ~ 260 МБ к моменту выключения, даже без единого отказа!
Я читал в Интернете, что мониторы ресурсов на самом деле не отображают то, что потребляет работающая игра внутри java-процесса, но смешивают некоторые JVM-вещи. Поэтому я решил провести дальнейший анализ с помощью jConsole и VisualVW. Я подозревал ленивый GC, но оба инструмента показали, что GC периодически запускался. Тем не менее, монитор ресурсов моей ОС показывал это непрерывно растущее использование оперативной памяти в пустом приложении LibGdx, хотя он ничего не делал, кроме того, что смотрел мне в лицо, раздражая Bad Logic-Smiley на красном фоне; -).
Я уже провел интенсивный поиск по форуму и переполнению стека на тему утечек памяти и использования оперативной памяти в LibGDX, но не смог найти удовлетворительного ответа. Поэтому мне интересно, вызывает ли это поведение беспокойство или это нормально? Если это так, и даже пустое приложение постоянно увеличивает объем используемой оперативной памяти, как можно определить, все ли в порядке или утечка памяти в приложении?
Я был бы очень признателен, если бы некоторые из вас, LibGDX-гуру, поделились вашей мудростью в этой теме с таким нубом, как я: -)
Спасибо заранее
- codeArist