Как анализировать память с помощью студии Android

Недавно переключитесь на студию android от eclipse. Как проверить кучу приложений и распределение памяти в студии Android? В Eclipse у нас есть MAT, есть что-нибудь в студии, чтобы проверить кучу дампа, hprof-файл?

Я объясню это с помощью простых шагов:

  1. Во-первых, вы устанавливаете MAT ( скачать ) или используете:

    заваривать сборщик памяти

  2. В Android Studio откройте Android Device Monitor или DDMS.

  3. Выберите свой процесс «com.example.etc ..»

  4. Нажмите «Обновить кучу» над списком процессов.

  5. В правой панели выберите вкладку «Куча».

  6. Нажмите «Причина».

  7. Нажмите Dump HPROF файл над списком процессов.

  8. Когда мы скачали файл HPROF, нам нужно открыть терминал и запустить эту команду, чтобы сгенерировать файл, чтобы открыть его с помощью MAT.

  9. Откройте терминал и запустите эту команду

./hprof-conv path / file.hprof exitPath / heap-convert.hprof

Команда hprof-conv находится в папке инструментов платформы sdk.

  1. И готовые и MAT могут открывать и открывать преобразованный файл (heap-convert.hprof).

Android Monitor -> Мониторы (рядом с logcat) -> Память -> Дамп java heap

введите описание изображения здесь

Я согласен с приведенным выше ответом, за исключением шагов ниже

  1. Нажмите «Обновить кучу» над списком процессов.

  2. В правой панели выберите вкладку «Куча».

  3. Нажмите «Причина».

Они не нужны. Просто выберите свое приложение / процесс в DDMS и нажмите, чтобы сбросить опцию профиля HPROF. После этого выполните шаги, как указано выше.

Можно также сделать следующее, чтобы получить больше опций,

  1. Перейти к Инструменты
  2. Затем на Android
  3. наконец, Android Device Monitor
  1. Сначала установите MAT , чтобы использовать его в Android Studio, вы должны выбрать Stand-alone Eclipse RCP Applications для установки, которые могут использоваться как независимый инструмент

  2. В Android Studio запустите приложение

  3. На нижней панели выберите пункт 6:Android , затем выберите Memory Monitor

  4. Нажмите Dump Java Heap

  5. Перейдите на вкладку «Захваты» (в левой панели), вы можете найти файл .hprof в папке « .hprof Heap Snapshot »

  6. Чтобы открыть файл .hprof в MAT, вы должны преобразовать формат: щелкните левой кнопкой мыши по файлу .hprof , затем выберите « Export to standard .hprof

  7. Откройте MAT, затем откройте файл .hprof который вы преобразовали в формат

Я переключился с Eclipse на Android Studio, но я все еще использую MAT в Eclipse с плагином DDMS. Это намного проще.

Обратите внимание, что в последней версии Android Studio (1.3+) захват hapf (Android hprof) был перенесен на подзаголовок монитора памяти под вкладкой Android (например, первое изображение в ответе cVoronin).

Когда захват будет завершен, он будет автоматически сохранен в директории «захватывает» в вашем проекте (вы можете переименовать файл после того, как захотите). Файл hprof автоматически откроется в новом средстве просмотра hprof в версии 1.3+.

Конечно, у вас всегда есть возможность конвертировать его в стандартный формат hprof и просматривать его в MAT. Просто щелкните файл в браузере Captures (в браузере Project) и выберите конвертировать его. И, как обычно, вы потеряете дополнительную информацию, специфичную для Android, по пути, не используя новый просмотрщик, поскольку стандартный hprof не поддерживает их.

Я знаю, что это довольно старый вопрос, но Android Studio 3 теперь имеет встроенный профилировщик.

Смотрите документацию здесь: Android Profiler в Android Studio 3.0

  • Сравнивая небольшие образцы кода на C #, можно ли улучшить эту реализацию?
  • Действительный профиль подготовки для этого исполняемого файла не найден ... (опять же)
  • Захват времени выхода функции с помощью __gnu_mcount_nc
  • Каков ваш любимый инструмент профилирования (для C ++)
  • Что такое простой прокси-сервер C ++ (VC ++)?
  • Средство профилирования .NET Memory
  • Как получить размер объекта в памяти?
  • Инструменты для анализа производительности программы Haskell
  • Каков самый быстрый способ выбора элементов-потомков в jQuery?
  • Есть ли простой способ получить все экземпляры объектов определенного classа в Java
  • Как профилировать сценарий оболочки bash медленный запуск?
  • Давайте будем гением компьютера.