У нас есть приложение, которое переключается с 30 с лишним МБ памяти на более чем 500 МБ при переходе между действиями. Пока это происходит, я могу отслеживать распределения и видеть, ЧТО хранится в памяти, но я хочу создать HPROF-файл кучи, чтобы загрузить его в MAT и получить лучшее представление о том, что использует эту память.
Однако, когда я пытаюсь создать дамп, он просто показывает пунктирную линию и счетчик на графике памяти, и это продолжается (по-видимому) без конца. Я могу создавать дампы с более низким распределением без каких-либо проблем, но с выделенным 500+ МБ я не могу этого сделать.
Я искал известные проблемы с этим сценарием, но не нашел. Есть ли параметр, который я могу изменить, чтобы помочь ему, или что-то, что я могу сделать, чтобы устранить проблему? Без хорошего анализа кучи я слеп в том, что происходит с памятью.
Примечание. Я не ищу помощи с самой проблемой памяти, ATM, меня в основном интересует, как я могу заставить работать дамп кучи.
Debug.dumpHprofData()
. - person CommonsWare   schedule 07.01.2017Debug.dumpHprofData()
в ваш код Java для программного создания файла HPROF. Возможно, вы захотите сами ответить на этот вопрос, чтобы объяснить, что вы сделали, что помогло вам в вашей ситуации. - person CommonsWare   schedule 12.01.2017adb
для запроса дампа. - person CommonsWare   schedule 16.01.2017