Intereting Posts
Сбой приложения Android WebView в эмуляторе: null Контекст приложения? Как загрузить библиотеку поддержки Android v7 в проект Android SBT? Предупреждение: предупреждение: Поддерживаемая исходная версия 'RELEASE_7' из обработчика аннотаций 'android.arch.lifecycle.LifecycleProcessor' меньше, чем -source '1.8' Извлеките всю строку Hardcoded String в строковый ресурс: Android Studio Android – битмап и управление памятью? Есть ли какие-либо проблемы с включением фляги, написанной в clojure, как часть приложения для Android? Запись данных на USB HID с использованием Javascript, HTML5 или любого кросс-платформенного языка (поддерживает Android) Как реализовать отменную функциональность в opengl в android Идеальный способ отменить выполнение AsyncTask Исключение пользовательского виджета Android Android: образец микрофона без записи, чтобы получить живую амплитуду / уровень? Лучшая практика цветов для Studio Studio Logcat Получить общее значение общих настроек Android в действии / нормальном классе Пример GL-стола показывает только зеленый экран в эмуляторе, но он работает на устройстве Метка Размер текста в соответствии с размером экрана в круговой диаграмме движка диаграммы в android

Какова цель установки минимального размера кучи в приложении Android?

В приложении Google Calendar для ОС Android вы столкнетесь с этой строкой в ​​методе onCreate для CalendarActivity .

// Eliminate extra GCs during startup by setting the initial heap size to 4MB. VMRuntime.getRuntime().setMinimumHeapSize(INITIAL_HEAP_SIZE) 

Может ли кто-нибудь объяснить, почему его установка на 4 МБ исключает GC?

Solutions Collecting From Web of "Какова цель установки минимального размера кучи в приложении Android?"

JVM обычно начинается с выделения относительно небольшой кучи. Затем после каждого запуска GC он проверяет, сколько свободной памяти кучи есть. Если отношение свободной кучи к общей куче слишком мал, JVM затем добавит больше памяти в кучу (до максимального размера установленной кучи).

Второй важный факт заключается в том, что GC работает наиболее эффективно, когда есть много памяти для восстановления. Если вы не входите в общие пределы системных ресурсов (например, запуск подкачки или свопинг), вы получаете лучшую производительность приложения, работая с большой кучей, чем небольшая.

Предположим, что разработчик приложения знает, что приложение, скорее всего, нуждается в определенном количестве кучи (например, 4 МБ), чтобы работать комфортно. Устанавливая этот размер как минимальный размер кучи, означает, что JVM не нужно запускать GC, когда куча заполняется (скажем) 1Mb, 2Mb и 3Mb. В результате JVM запускает сборщик мусора меньше во время запуска приложения и обычного запуска, приложение запускается быстрее, и пользователь видит меньшее количество пауз GC.