2014-03-15 3 views
0

Я сделал игру, используя libgdx. Когда я запускаю его, требуется ~ 30 мотов оперативной памяти. Но память, занятая в ОЗУ, со временем расширяется, тогда как все текстуры загружаются.Знание ressources, сделанное libgdx

Есть ли способ узнать ресурсы, используемые libgdx?

ответ

1

Да, есть. Запустите jvisualvm.exe со своего java sdk и подключитесь к вашему запущенному приложению. (Program/java/jdk_x_x/bin) Он показывает вам реальное использование ОЗУ и созданные классы и т. Д. (См. Вкладку Monitor).

Кроме того, вы можете просмотреть профиль, чтобы проверить, есть ли проблемы с производительностью. Он также может отслеживать использование ОЗУ. Зайдите на вкладку sampler для профилирования. Просто запустите пробоотборник немного и выключите игру. После этого он спрашивает, хотите ли вы иметь снимок текущего состояния. Или просто прекратите выборку и проверьте данные. Возьмите его и проверьте, какой из ваших вещей занимает больше всего ОЗУ и так далее.

Else go for logging your Assetloading и проверьте, не делаете ли вы ошибки.

+0

Спасибо! Но это java.nio.DirectFloatBufferU, который занимает 50% ОЗУ, а java.land.Object [] 25%. Как с этим бороться? – Eko

+0

Я думаю, что floatbuffer является буфером для рендеринга, поэтому вы не можете его изменить. И уверен, что объект java lang [] должен быть вашим массивом объектов, чтобы вы могли уменьшить его, используя меньшее количество объектов. Я бы не заботился о 30 МБ оперативной памяти виртуальной машины. Если бы его реальное использование на 30-50 МБ (а не использование виртуальной машины) мне было бы интересно ... Сейчас в днях это не так много, я думаю. Даже для смартфонов. Хорошо, если он увеличивается, у вас есть утечка данных, либо у вас есть «новый» вызов внутри вашего рендеринга. Взгляните на все внутри вашего рендера и удалите все новые внутри! Это вызывает много неприятностей. – BennX

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