Страницы

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

суббота, 6 июля 2019 г.

Поиск тяжелых для исполнения участков кода

Я подсчитываю fps в игрушке и код посчета не менялся. И выдавало около 200 фпс на телефоне и где то 120 на эмуляторе. Когда отключал в игровом цикле отрисовку, то доходило до 500 , а то и больше фпс. Теперь результат всего 30 фпс и немного больше на телефоне. Я конечно попробовал отключить отрисовку графики полностью, да еще и подсчет физики отключил. Результат 80 fps . Как то маловато. Код с тех пор претерпел много изменений. Возможно дело в том что класс наследующий Tread с игровым циклом абстрактный, может быть столь частое использование полиморфизма и замедляет цикл. Но я хотел бы спросить вас есть ли средства для мониторинга, выявления тяжелых строк кода?


Ответ

Профилирование производительности это довольно большая тема и требует хороших знаний многопоточности и опыта работы с отладчиками. Но для того чтоб начать в Android Stuido есть Android Profiler и на данный момент он может очень много. В вашем случае необходимо подключить устройство, открыть вкладку Profiler после выбрать вкладку CPU, на устр-ве встать на проблемный участок, после нажать кнопку record, включиться запись и трассировка, произвести необходимые действия в проблемном месте приложения, остановить запись. После вы получите картинку, где будет множество вызовов в том числе нативных вплоть до самой Zygote, но найти из этого списка свои методы которые имеют долгий срок выполнения или очень частый не составит проблем. Они будут подсвечены определенным светом, выглядеть будет примерно так (зависит от версии Android Studio потому что сейчас, профайлер изменяется практически с каждой версией):
Если стоит задача для профилирования производительности кросс-платформенных приложений, здесь есть сервисы, один из любимых это FirebasePerfomance. Очень помог в большом проекте для выявления слабых участков в коде, особенно если есть нативная связка и множественные сетевые запросы, работа в разных сетях, и частое общение с серверами. Работает по аналогии Event-ов аналитики, с настройкой кастомных событий. Удачи.

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

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