Java программа тормозит из-за частого «захвата» новой «порции» памяти озу небольшими кусками. Что делать?

У меня есть программа написанная на java на андроиде. В этой программе запускается процедура main() в фоновом потоке, которая представляет из себя основной цикл и два вложеных в него. Суть программы в том, что она, при каждой итерации цикла,создает массив данных (с каждым циклом на 1 длиннее; подобие стэка). Новый массив добавляется к предыдущим в двумерном массиве. Все работает хорошо, одна только проблема. Java выделяет для программы 25мб озу, если нужно еще, она еще выделяет 25мб и т.д., при этом, при выделении памяти, программа притормаживает на 2-3 сек. В скором времени, мой "стэк" становится увесистым, и программе нужно много раз получить по 25 мб, из-за чего она надолго замирает. Как мне установить в программу, что она "хватала" памяти не по 25мб, а, скажем, по 100мб? Свободного озу у моего телефона 1гб.
  • Вопрос задан
  • 149 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Java
Седой и строгий
Очевидно создавать ваш "стек" сразу нужного размера за пределами цикла и на итерациях наполнять его данными. Но как метко заметили в комментариях, не стоит так жрать память, особенно в мобильном приложении.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы