У меня есть googled, но я не могу понять, как определить максимальную кучу, которую поставщик установил для java-кучи Android. Я знаю, как получить максимальную кучу и максимальную кучу, вы должны использовать для приложения с этой большой теме: Android heap size on different phones/devices and OS versionsКак определить максимальную кучу Android, которую поставщик установил в
Но когда я запускаю эти два метода и сравнить результаты, что Android-студия Memory Profiler дс-х у него есть наполовину ценность того, что говорит ActivityManager getMemoryClass. Поэтому я подозреваю, что поставщик установил его ниже этого значения. У меня есть LG G4, а getMemoryClass - 256 МБ, но я вижу, что GC происходит вокруг 128 МБ.
Ум, сбор мусора не дожидается, пока вы не достигнете предела кучи. В конце концов, на устройстве есть другие приложения, конкурирующие за одну и ту же память. – CommonsWare
Спасибо, я знаю, что для JVM Oracle у него была формула, которая, как казалось, указывала 90% от максимальной, когда она собиралась. Я вижу хороший пилообразный сигнал, но он никогда не выходит за пределы 128 МБ. Мое приложение действительно использует много изображений, которые должны выходить за пределы 128 МБ, когда я подчеркиваю, если я никогда этого не увижу. Однако я буду внимательно смотреть. –
Я провела стресс-тест и, конечно же, на жестком лимите 128 МБ. Я пытаюсь настроить использование памяти на основе доступной кучи вместо того, чтобы иметь что-то из файла конфигурации. Если поставщик устанавливает предел, не основанный на двух методах, упомянутых в ссылке выше, я хотел бы знать программно, что это такое. –