В Android Studio 4.0 мы пересмотрели UI профилировщика (Profiler), чтобы обеспечить более интуитивно понятный рабочий процесс записи работы ЦПУ. Мы продолжали вносить улучшения, основываясь на ваших отзывах, и добавили больше функций в версию 4.1.
В этой статье мы расскажем о том, что нового появилось в Android Studio для системной трассировки (System Trace), одной из редко используемых, но мощных конфигураций записи работы ЦП. В отличие от метода Java или трассировки функций C/C++, системная трассировка накапливает действия устройств (например, планирование работы ЦПУ) и системные процессы Android (например, SurfaceFlinger). Кроме того, вы можете настроить код с помощью пользовательских событий, вызвав API Trace в приложении. Таким образом, ваши пользовательские события будут коллекционироваться вместе с системными. Они могут пригодиться, когда вы будете исследовать проблемы производительности, такие как шероховатостьUI или высокое энергопотребление.
Записи работы ЦПУ теперь отделены от основной временной шкалы профилировщика для облегчения анализа. В этом выделенном представлении данные трассировки организованы в разделы в левой части окна Profiler.
Системная трассировка в Android Studio 4.1 Beta 1Вы можете перемещать разделы вверх и вниз, чтобы реорганизовать список или отдельные элементы внутри них, просто перетаскивая их.
Мы услышали, что выбор потока для просмотра его диаграммы вызовов (или событий для системной трассировки) довольно громоздок, поэтому мы объединили все действия потока в одно представление, отображающее его состояния и диаграммы вызовов одновременно. По умолчанию мы сортируем потоки по степени их загруженности, но вы можете перетащить мышкой любой отдельный поток, чтобы изменить их порядок.
Перетащите поток, чтобы изменить порядок спискаВы также можете свернуть или развернуть каждый поток, щелкнув один раз значок треугольника или дважды щелкнув на его имени. Обратите внимание, что для трассировки метода Java или функции C/C++ мы сворачиваем все потоки по умолчанию из-за глубоких стеков вызовов, так что вы сразу можете взглянуть на все данные конкретного потока.
Трассировка функций C/C++, показывающая потоки, свернутые по умолчаниюДля системной трассировки события трассировки теперь имеют уникальный цвет, чтобы было проще увидеть разницу.
Имена событий системной трассировки имеют цветовую кодировкуНовый UI трассировки имеет обновленную схему навигации по временной шкале. Мы заменили старую горизонтальную полосу прокрутки на более детализированный вид.
Вверху вы можете увидеть временную шкалу, которая отображает только продолжительность трассировки, а не весь сеанс профилирования. С помощью селектора можно быстро сузить его до определенного временного диапазона, для которого в нижеприведенных разделах отображаются подробные данные.
Используйте селектор диапазона, чтобы сфокусироваться на небольшом фрагменте временной шкалыОттуда вы можете выполнять более точные навигационные действия:
Начиная с Android Studio 4.1 Canary 9, вы можете использовать мышь в разделе с потоками (Threads), чтобы сделать точный выбор. Это позволяет выбрать прямоугольную область, которую можно увеличить, нажав кнопку Zoom to Selection в правом верхнем углу (клавиша “M”). Вы можете даже выбрать несколько потоков. Это полезно, если вы перетаскиваете похожие потоки рядом друг с другом и проверяете все их сразу. Например, вы можете выполнить анализ нескольких рабочих потоков, часто встречающихся в играх.
Выбор поля комбинированный с перетаскиванием и масштабированиемГоворя об анализе, мы хотим выделить новую панель анализа (Analysis Panel), представленную в Android Studio 4.0, в правой колонке окна Profiler.
Здесь вы можете найти аналитические данные, полученные из записанной трассировки, которую вы выбрали. Если вы выбираете поток, фрейм стека или событие трассировки из левого столбца, панель анализа покажет информацию, конкретную для вашего выбора. Например, если выбран поток, отображаются его состояния, а также другая полезная информация.
Чтобы сделать эту панель анализа полезной, мы изучали способы получения полезных аналитических данных. В дополнение к Top Down, Flame Chart и Bottom Up, уже присутствующим в профилировщике ЦПУ, мы добавили вкладку со сводкой (Summary) в Android Studio 4.1 Canary 10 для распределения состояния потока, статистики событий трассировки и т. д. Например, довольно часто нам нужно узнать больше о повторяющемся событии трассировки. На вкладке со сводкой отображаются основные статистические данные (количество, мин, макс и т. д.), а также наиболее продолжительные события выбранного события трассировки. Вы даже можете перейти к другому событию, выбрав строку из таблицы.
Статистика и наиболее продолжительные случаи события трассировкиИ последнее, но не менее важное: мы улучшили стабильность и производительность записи работы ЦП.
Загрузите последнюю версию превью Android Studio 4.1, чтобы попробовать эти функции. Как всегда, мы ценим ваши отзывы.
Перевод статьи Yi Yang: What’s New in Android Studio System Trace
Комментарии