Страницы

Поиск по вопросам

пятница, 12 октября 2018 г.

Чем, и как проверить что нагружает систему?

Я новичок в разработке под Android. Сейчас я пишу приложение для управления роботом по BLE. В приложении я добавил виртуальный джойстик и пару кнопок, на моем Meizu M2 mini все работает замечательно, но когда я тестирую приложения на других устройствах оно жутко лагает и тормозит. Я вынес функции с большим количеством вычислений в отдельные потоки, и всячески пытался оптимизировать приложение, стало немного лучше, но все равно не юзабельно. Есть ли какие нибудь средства, что бы определить какой фрагмент программы нагружает систему сильнее всего? Если нет, то прошу поделиться опытом, как вы определяете какие фрагменты программы нагружают систему?


Ответ

Для профилирования приложения в Android Studio используются следующие инструменты:
Memory Monitor - показывает использование оперативной памяти профилируемым приложением. Позволяет принудительно вызвать GC (сборщик мусора), получить содержимое "кучи" (HPROF Viewer) и распределение занимаемой памяти (Allocation Tracer). HPROF Viewer - показывает объекты, хранящиеся в "куче" с подробным содержимым. Allocation Tracker - показывает какие объекты находятся в оперативной памяти, включает инструменты анализа, используется для поиска утечек. CPU Monitor - показывает загрузку процессоров профилируемым приложением, включает инструмент Method Tracer для контроля за временем. Method Tracer - показывает вызов методов и время, затраченное на их выполнение. System Information - формирует дампы по нескольким состояниям системы. Network Monitor - показывает нагрузку сети профилируемым приложением. Android Device Monitor - мощное средство профилирования и отладки, включающее несколько инструментов DDMS, Hierarchy Viewer, Systrace, TraceView, OpenGL Trace DDMS - многофункциональный профилировщик. Использовался до появления в Android Studio инструментов, перечисленных выше и в основном дублирует их. Удобен тем, что все находится в одном месте. Hierarhy Viewer - используется для оптимизации разметки и загрузки экранов приложения. С Android Studio 2.2 включен в саму IDE и называется Layout Inspector (настройка Hierarhy Viewer) Три трассировщика из ADM : Systrace, TraceView, OpenGL Trace для контроля за выполнением приложения
C помощью этих инструментов можно полностью оценить, как выполняется приложение и оптмизировать его. Замечу, что по работе с каждым из них нужно писать отдельную статью (есть и книги по профилированию, ибо тема очень сложная), чтобы использовать их эффективно и понимать их вывод. К счастью эти статьи уже написаны и гугл знает где искать их все.

Комментариев нет:

Отправить комментарий