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

11 Июн 2021 в 20:06
406 +1
0
Ответы
1

Для того чтобы уменьшить задержки при выделении памяти в вашей программе, вы можете попробовать увеличить размер «порций» памяти, выделяемых в каждой итерации цикла. Вместо того, чтобы увеличивать массив на 1 элемент каждый раз, вы можете увеличивать его на 10, 50 или 100 элементов за итерацию. Это позволит уменьшить количество операций выделения памяти, и, следовательно, уменьшить задержки.

Кроме того, вы можете использовать более эффективные способы работы с массивами данных, такие как использование ArrayList или LinkedList вместо обычных массивов. Эти структуры данных автоматически управляют памятью и могут быть более эффективными в вашем случае.

Если у вас есть возможность, также рассмотрите оптимизацию вашего кода, чтобы уменьшить количество операций выделения памяти или уменьшить объем данных, хранимых в памяти.

Наконец, вы можете попробовать увеличить размер кучи (Heap) для вашего приложения в настройках JVM. Это можно сделать с помощью параметра -Xmx в командной строке запуска вашего приложения. Например, -Xmx512m установит размер кучи в 512 мегабайт. Однако будьте осторожны с этим параметром, так как установка слишком большого размера кучи может привести к проблемам с производительностью и потреблением памяти.

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

17 Апр в 16:45
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 83 829 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир