У нас есть приложение, которое прыгает с 30-мегабайтного распределения памяти до более 500 МБ при навигации между действиями. Я могу отслеживать распределения, пока это происходит, и см., ЧТО хранится в памяти, но я хочу создать файл HPROF кучи, поэтому я могу загрузить его в MAT и получить лучшее представление о том, что использует эту память.Куча дампа с высоким распределением памяти в Android Studio никогда не заканчивается
Однако, когда я пытаюсь создать дамп, он просто показывает пунктирную линию и прядильщик на графике памяти, и это продолжает (казалось бы) без конца. Я могу создавать дампы с меньшим распределением без каких-либо проблем, но с выделенным 500 МБ, я не могу это сделать.
Я искал известные проблемы с этим сценарием, но не могу их найти. Есть ли параметр, который я могу изменить, чтобы помочь ему, или что-то, что я могу сделать для устранения этой проблемы? Без хорошего анализа кучи я слепой относительно того, что происходит с памятью.
Примечание: Я не ищу помощь с самой проблемой памяти, ATM, меня больше всего интересует, как я могу получить кучу кучи для работы.
500MB должно быть намного выше предела кучи вашего процесса, поэтому я не уверен, насколько полезным будет MAT. Но если есть надежный способ, чтобы вы могли попасть в проблемное состояние, напишите для него тестовый пример и посмотрите, удастся ли вам получить файл HPROF [через 'Debug.dumpHprofData()'] (https: // developer.android.com/reference/android/os/Debug.html#dumpHprofData(java.lang.String)). – CommonsWare
Я дам метод терминала попробовать, спасибо! К сожалению, нет надежного способа воспроизвести проблему - мы можем использовать приложение в течение нескольких дней подряд без каких-либо проблем, а затем внезапно увидеть всплеск, и как только это произойдет, только удаление и переустановка вернут его к рабочему государство. Это довольно необычно. – jkane001
Команда @commonsware terminal сделала трюк, спасибо! Если вы представите это в качестве ответа, я буду рад принять его. – jkane001