В этом руководстве объясняется, как перемещаться по отчету Systrace и интерпретировать его. Чтобы интерпретировать отчет Perfetto, см. документацию Trace Processor .
Элементы типового отчета
Systrace генерирует выходной HTML-файл, содержащий ряд разделов. В отчете перечислены потоки каждого процесса. Если данный поток отображает кадры пользовательского интерфейса, в отчете также указываются обработанные кадры на временной шкале. Время течет вперед по мере перемещения по отчету слева направо.
Сверху вниз отчет содержит следующие разделы.
Взаимодействие с пользователем
Первый раздел содержит панели, которые отображают конкретные действия пользователя в вашем приложении или игре, например касание экрана устройства. Эти взаимодействия служат полезными маркерами времени.
Активность процессора
В следующем разделе показаны полосы, которые представляют активность потоков внутри каждого ЦП. Полосы показывают активность ЦП во всех приложениях, включая ваше приложение или игру.
Раздел активности ЦП можно расширить, что позволяет просматривать тактовую частоту каждого ЦП. На рис. 1 показан пример свернутого раздела активности ЦП, а на рис. 2 показана расширенная версия, отображающая тактовую частоту:
Системные события
Гистограммы в этом разделе показывают конкретные события системного уровня, такие как количество текстур и общий размер определенных объектов.
Гистограмма, на которую стоит обратить внимание более внимательно, — это гистограмма, помеченная как SurfaceView . Счетчик представляет собой количество составных буферов кадров, которые были переданы в конвейер отображения и ожидают отображения на экране устройства. Поскольку большинство устройств имеют двойную или тройную буферизацию, этот счетчик почти всегда равен 0, 1 или 2.
Другие гистограммы, изображающие процесс Surface Flinger, включая события VSync и работу замены потоков пользовательского интерфейса, показаны на рисунке 3:
Отображать рамки
Этот раздел, часто самый высокий в отчете, представляет собой разноцветную линию, за которой следуют стопки столбцов. Эти фигуры представляют состояние и стек кадров определенного созданного потока. Каждый уровень стека представляет собой вызов beginSection()
или начало пользовательского события трассировки , которое вы определили для своего приложения или игры.
Разноцветная линия над каждой стопкой столбцов представляет набор состояний определенного потока с течением времени. Каждый сегмент линии может содержать один из следующих цветов:
- Зеленый: бег
- Поток завершает работу, связанную с процессом, или отвечает на прерывание.
- Синий: работоспособный
- Поток доступен для запуска, но в настоящее время не запланирован.
- Белый: Спящий
- Потоку нечего делать, возможно, потому, что поток заблокирован мьютексом.
- Оранжевый: непрерывный сон.
- Поток блокируется при вводе-выводе или ожидает завершения дисковой операции.
- Фиолетовый: прерываемый сон.
- Поток блокируется при выполнении другой операции ядра, обычно управления памятью.
Сочетания клавиш
В следующей таблице перечислены сочетания клавиш, доступные при просмотре отчета Systrace:
Ключ | Описание | |
---|---|---|
Вт | Увеличьте масштаб временной шкалы трассировки. | |
А | Панорамирование влево на временной шкале трассировки. | |
С | Уменьшите масштаб временной шкалы трассировки. | |
Д | Панорамируйте вправо по временной шкале трассировки. | |
Э | Центрируйте временную шкалу трассировки в текущем местоположении мыши. | |
М | Рамка текущего выделения. | |
1 | Измените текущую активную модель выбора на режим «выбрать». Соответствует первой кнопке, которая появляется на панели инструментов выбора мыши (см. изображение справа). | |
2 | Измените текущую активную модель выбора на режим «панорамирования». Соответствует второй кнопке, которая появляется на панели инструментов переключателя мыши (см. изображение справа). | |
3 | Измените текущую активную модель выбора на режим «масштабирования». Соответствует третьей кнопке, которая появляется на панели инструментов выбора мыши (см. изображение справа). | |
4 | Измените активную в данный момент модель выбора на режим «времени». Соответствует четвертой кнопке, которая появляется на панели инструментов выбора мыши (см. изображение справа). | |
Г | Показывать сетку в начале выбранной в данный момент задачи. | |
Шифт + Г | Показывать сетку в конце выбранной в данный момент задачи. | |
Стрелка влево | Выберите предыдущее событие на выбранной в данный момент временной шкале. | |
Стрелка вправо | Выберите следующее событие на выбранной в данный момент временной шкале. |
Исследуйте проблемы с производительностью
При работе с отчетом Systrace вы можете проверить загрузку ЦП устройства во время записи. Для получения помощи в навигации по отчету HTML см. раздел «Сочетания клавиш» или нажмите кнопку ? кнопку в правом верхнем углу отчета.
В разделах ниже объясняется, как проверять информацию в отчете, чтобы найти и устранить проблемы с производительностью.
Выявление проблем с производительностью
При навигации по отчету Systrace можно легче выявить проблемы с производительностью, выполнив одно или несколько из следующих действий:
- Выберите интересующий интервал времени, обведя его прямоугольником.
- Отметьте или выделите проблемную область с помощью линейки.
- Отобразите каждую операцию обновления дисплея, нажав «Параметры просмотра» > «Выделить VSync» .
Проверка фреймов пользовательского интерфейса и предупреждений
Как показано на рисунке 4, в отчете Systrace перечислен каждый процесс, который визуализирует кадры пользовательского интерфейса, и указывается каждый визуализированный кадр на временной шкале. Кадры, которые обрабатываются в течение 16,6 миллисекунд, необходимых для поддержания стабильных 60 кадров в секунду, обозначаются зелеными кружками. Кадры, рендеринг которых занимает более 16,6 миллисекунд, обозначаются желтыми или красными кружками.
Нажатие на кружок кадра выделяет его и предоставляет дополнительную информацию о работе, проделанной системой для визуализации этого кадра, включая оповещения. В отчете также показаны методы, которые система выполняла при рендеринге этого кадра. Вы можете изучить эти методы, чтобы определить потенциальные причины сбоев пользовательского интерфейса.
После выбора медленного кадра вы можете увидеть предупреждение в нижней части отчета. Предупреждение, показанное на рис. 5, указывает на то, что основная проблема с фреймом заключается в том, что слишком много времени тратится на переработку и перепривязку ListView
. В трассировке есть ссылки на соответствующие события, которые объясняют больше о том, что система делает в это время.
Чтобы просмотреть каждое оповещение, обнаруженное инструментом в вашей трассировке, а также количество раз, когда устройство активировало каждое оповещение, щелкните вкладку «Предупреждения» в правой части окна, как показано на рис. 6. Панель «Предупреждения» позволяет просмотреть какие проблемы возникают в трассировке и как часто они способствуют зависаниям. Вы можете думать об этой панели как о списке ошибок, которые необходимо исправить. Зачастую небольшое изменение или улучшение в одной области может привести к удалению целого набора предупреждений.
Если вы видите, что в потоке пользовательского интерфейса выполняется слишком много работы, используйте один из следующих подходов, чтобы определить, какие методы потребляют слишком много процессорного времени:
- Если у вас есть представление о том, какие методы могут вызывать узкие места, добавьте к этим методам маркеры трассировки. Дополнительные сведения см. в руководстве по определению пользовательских событий в коде .
- Если вы не уверены в источнике узких мест пользовательского интерфейса, используйте профилировщик ЦП , доступный в Android Studio. Вы можете создавать журналы трассировки , а затем импортировать и проверять их с помощью CPU Profiler.
В этом руководстве объясняется, как перемещаться по отчету Systrace и интерпретировать его. Чтобы интерпретировать отчет Perfetto, см. документацию Trace Processor .
Элементы типового отчета
Systrace генерирует выходной HTML-файл, содержащий ряд разделов. В отчете перечислены потоки каждого процесса. Если данный поток отображает кадры пользовательского интерфейса, в отчете также указываются обработанные кадры на временной шкале. Время течет вперед по мере перемещения по отчету слева направо.
Сверху вниз отчет содержит следующие разделы.
Взаимодействие с пользователем
Первый раздел содержит панели, которые отображают конкретные действия пользователя в вашем приложении или игре, например касание экрана устройства. Эти взаимодействия служат полезными маркерами времени.
Активность процессора
В следующем разделе показаны полосы, которые представляют активность потоков внутри каждого ЦП. Полосы показывают активность ЦП во всех приложениях, включая ваше приложение или игру.
Раздел активности ЦП можно расширить, что позволяет просматривать тактовую частоту каждого ЦП. На рис. 1 показан пример свернутого раздела активности ЦП, а на рис. 2 показана расширенная версия, отображающая тактовую частоту:
Системные события
Гистограммы в этом разделе показывают конкретные события системного уровня, такие как количество текстур и общий размер определенных объектов.
Гистограмма, на которую стоит обратить внимание более внимательно, — это гистограмма, помеченная как SurfaceView . Счетчик представляет собой количество составных буферов кадров, которые были переданы в конвейер отображения и ожидают отображения на экране устройства. Поскольку большинство устройств имеют двойную или тройную буферизацию, этот счетчик почти всегда равен 0, 1 или 2.
Другие гистограммы, изображающие процесс Surface Flinger, включая события VSync и работу замены потоков пользовательского интерфейса, показаны на рисунке 3:
Отображать рамки
Этот раздел, часто самый высокий в отчете, представляет собой разноцветную линию, за которой следуют стопки столбцов. Эти фигуры представляют состояние и стек кадров определенного созданного потока. Каждый уровень стека представляет собой вызов beginSection()
или начало пользовательского события трассировки , которое вы определили для своего приложения или игры.
Разноцветная линия над каждой стопкой столбцов представляет набор состояний определенного потока с течением времени. Каждый сегмент линии может содержать один из следующих цветов:
- Зеленый: бег
- Поток завершает работу, связанную с процессом, или отвечает на прерывание.
- Синий: работоспособный
- Поток доступен для запуска, но в настоящее время не запланирован.
- Белый: Спящий
- Потоку нечего делать, возможно, потому, что поток заблокирован мьютексом.
- Оранжевый: непрерывный сон.
- Поток блокируется при вводе-выводе или ожидает завершения дисковой операции.
- Фиолетовый: прерываемый сон.
- Поток блокируется при выполнении другой операции ядра, обычно управления памятью.
Сочетания клавиш
В следующей таблице перечислены сочетания клавиш, доступные при просмотре отчета Systrace:
Ключ | Описание | |
---|---|---|
Вт | Увеличьте масштаб временной шкалы трассировки. | |
А | Панорамирование влево на временной шкале трассировки. | |
С | Уменьшите масштаб временной шкалы трассировки. | |
Д | Панорамируйте вправо по временной шкале трассировки. | |
Э | Центрируйте временную шкалу трассировки в текущем местоположении мыши. | |
М | Рамка текущего выделения. | |
1 | Измените текущую активную модель выбора на режим «выбрать». Соответствует первой кнопке, которая появляется на панели инструментов выбора мыши (см. изображение справа). | |
2 | Измените текущую активную модель выбора на режим «панорамирования». Соответствует второй кнопке, которая появляется на панели инструментов переключателя мыши (см. изображение справа). | |
3 | Измените текущую активную модель выбора на режим «масштабирования». Соответствует третьей кнопке, которая появляется на панели инструментов выбора мыши (см. изображение справа). | |
4 | Измените активную в данный момент модель выбора на режим «времени». Соответствует четвертой кнопке, которая появляется на панели инструментов выбора мыши (см. изображение справа). | |
Г | Показывать сетку в начале выбранной в данный момент задачи. | |
Шифт + Г | Показывать сетку в конце выбранной в данный момент задачи. | |
Стрелка влево | Выберите предыдущее событие на выбранной в данный момент временной шкале. | |
Стрелка вправо | Выберите следующее событие на выбранной в данный момент временной шкале. |
Исследуйте проблемы с производительностью
При работе с отчетом Systrace вы можете проверить загрузку ЦП устройства во время записи. Для получения помощи в навигации по отчету HTML см. раздел «Сочетания клавиш» или нажмите кнопку ? кнопку в правом верхнем углу отчета.
В разделах ниже объясняется, как проверять информацию в отчете, чтобы найти и устранить проблемы с производительностью.
Выявление проблем с производительностью
При навигации по отчету Systrace можно легче выявить проблемы с производительностью, выполнив одно или несколько из следующих действий:
- Выберите интересующий интервал времени, обведя его прямоугольником.
- Отметьте или выделите проблемную область с помощью линейки.
- Отобразите каждую операцию обновления дисплея, нажав «Параметры просмотра» > «Выделить VSync» .
Проверка фреймов пользовательского интерфейса и предупреждений
Как показано на рисунке 4, в отчете Systrace перечислен каждый процесс, который визуализирует кадры пользовательского интерфейса, и указывается каждый визуализированный кадр на временной шкале. Кадры, которые обрабатываются в течение 16,6 миллисекунд, необходимых для поддержания стабильных 60 кадров в секунду, обозначаются зелеными кружками. Кадры, рендеринг которых занимает более 16,6 миллисекунд, обозначаются желтыми или красными кружками.
Нажатие на кружок кадра выделяет его и предоставляет дополнительную информацию о работе, проделанной системой для визуализации этого кадра, включая оповещения. В отчете также показаны методы, которые система выполняла при рендеринге этого кадра. Вы можете изучить эти методы, чтобы определить потенциальные причины сбоев пользовательского интерфейса.
После выбора медленного кадра вы можете увидеть предупреждение в нижней части отчета. Предупреждение, показанное на рис. 5, указывает на то, что основная проблема с фреймом заключается в том, что слишком много времени тратится на переработку и перепривязку ListView
. В трассировке есть ссылки на соответствующие события, которые объясняют больше о том, что система делает в это время.
Чтобы просмотреть каждое оповещение, обнаруженное инструментом в вашей трассировке, а также количество раз, когда устройство активировало каждое оповещение, щелкните вкладку «Предупреждения» в правой части окна, как показано на рис. 6. Панель «Предупреждения» позволяет просмотреть какие проблемы возникают в трассировке и как часто они способствуют зависаниям. Вы можете думать об этой панели как о списке ошибок, которые необходимо исправить. Зачастую небольшое изменение или улучшение в одной области может привести к удалению целого набора предупреждений.
Если вы видите, что в потоке пользовательского интерфейса выполняется слишком много работы, используйте один из следующих подходов, чтобы определить, какие методы потребляют слишком много процессорного времени:
- Если у вас есть представление о том, какие методы могут вызывать узкие места, добавьте к этим методам маркеры трассировки. Дополнительные сведения см. в руководстве по определению пользовательских событий в коде .
- Если вы не уверены в источнике узких мест пользовательского интерфейса, используйте профилировщик ЦП , доступный в Android Studio. Вы можете создавать журналы трассировки , а затем импортировать и проверять их с помощью CPU Profiler.
В этом руководстве объясняется, как перемещаться по отчету Systrace и интерпретировать его. Чтобы интерпретировать отчет Perfetto, см. документацию Trace Processor .
Элементы типового отчета
Systrace генерирует выходной HTML-файл, содержащий ряд разделов. В отчете перечислены потоки каждого процесса. Если данный поток отображает кадры пользовательского интерфейса, в отчете также указываются обработанные кадры на временной шкале. Время течет вперед по мере перемещения по отчету слева направо.
Сверху вниз отчет содержит следующие разделы.
Взаимодействие с пользователем
Первый раздел содержит панели, которые отображают конкретные действия пользователя в вашем приложении или игре, например касание экрана устройства. Эти взаимодействия служат полезными маркерами времени.
Активность процессора
В следующем разделе показаны полосы, которые представляют активность потоков внутри каждого ЦП. Полосы показывают активность ЦП во всех приложениях, включая ваше приложение или игру.
Раздел активности ЦП можно расширить, что позволяет просматривать тактовую частоту каждого ЦП. На рис. 1 показан пример свернутого раздела активности ЦП, а на рис. 2 показана расширенная версия, отображающая тактовую частоту:
Системные события
Гистограммы в этом разделе показывают конкретные события системного уровня, такие как количество текстур и общий размер определенных объектов.
Гистограмма, на которую стоит обратить внимание более внимательно, — это гистограмма, помеченная как SurfaceView . Счетчик представляет собой количество составных буферов кадров, которые были переданы в конвейер отображения и ожидают отображения на экране устройства. Поскольку большинство устройств имеют двойную или тройную буферизацию, этот счетчик почти всегда равен 0, 1 или 2.
Другие гистограммы, изображающие процесс Surface Flinger, включая события VSync и работу замены потоков пользовательского интерфейса, показаны на рисунке 3:
Отображать рамки
Этот раздел, часто самый высокий в отчете, представляет собой разноцветную линию, за которой следуют стопки столбцов. Эти фигуры представляют состояние и стек кадров определенного созданного потока. Каждый уровень стека представляет собой вызов beginSection()
или начало пользовательского события трассировки , которое вы определили для своего приложения или игры.
Разноцветная линия над каждой стопкой столбцов представляет набор состояний определенного потока с течением времени. Каждый сегмент линии может содержать один из следующих цветов:
- Зеленый: бег
- Поток завершает работу, связанную с процессом, или отвечает на прерывание.
- Синий: работоспособный
- Поток доступен для запуска, но в настоящее время не запланирован.
- Белый: Спящий
- Потоку нечего делать, возможно, потому, что поток заблокирован мьютексом.
- Оранжевый: непрерывный сон.
- Поток блокируется при вводе-выводе или ожидает завершения дисковой операции.
- Фиолетовый: прерываемый сон.
- Поток блокируется при выполнении другой операции ядра, обычно управления памятью.
Сочетания клавиш
В следующей таблице перечислены сочетания клавиш, доступные при просмотре отчета Systrace:
Ключ | Описание | |
---|---|---|
Вт | Увеличьте масштаб временной шкалы трассировки. | |
А | Панорамирование влево на временной шкале трассировки. | |
С | Уменьшите масштаб временной шкалы трассировки. | |
Д | Панорамируйте вправо по временной шкале трассировки. | |
Э | Центрируйте временную шкалу трассировки в текущем местоположении мыши. | |
М | Рамка текущего выделения. | |
1 | Измените текущую активную модель выбора на режим «выбрать». Соответствует первой кнопке, которая появляется на панели инструментов выбора мыши (см. изображение справа). | |
2 | Измените текущую активную модель выбора на режим «панорамирования». Соответствует второй кнопке, которая появляется на панели инструментов переключателя мыши (см. изображение справа). | |
3 | Измените текущую активную модель выбора на режим «масштабирования». Соответствует третьей кнопке, которая появляется на панели инструментов выбора мыши (см. изображение справа). | |
4 | Измените активную в данный момент модель выбора на режим «времени». Соответствует четвертой кнопке, которая появляется на панели инструментов выбора мыши (см. изображение справа). | |
Г | Показывать сетку в начале выбранной в данный момент задачи. | |
Шифт + Г | Показывать сетку в конце выбранной в данный момент задачи. | |
Стрелка влево | Выберите предыдущее событие на выбранной в данный момент временной шкале. | |
Стрелка вправо | Выберите следующее событие на выбранной в данный момент временной шкале. |
Исследуйте проблемы с производительностью
При работе с отчетом Systrace вы можете проверить загрузку ЦП устройства во время записи. Для получения помощи в навигации по отчету HTML см. раздел «Сочетания клавиш» или нажмите кнопку ? кнопку в правом верхнем углу отчета.
В разделах ниже объясняется, как проверять информацию в отчете, чтобы найти и устранить проблемы с производительностью.
Выявление проблем с производительностью
При навигации по отчету Systrace можно легче выявить проблемы с производительностью, выполнив одно или несколько из следующих действий:
- Выберите интересующий интервал времени, обведя его прямоугольником.
- Отметьте или выделите проблемную область с помощью линейки.
- Отобразите каждую операцию обновления дисплея, нажав «Параметры просмотра» > «Выделить VSync» .
Проверка фреймов пользовательского интерфейса и предупреждений
Как показано на рисунке 4, в отчете Systrace перечислен каждый процесс, который визуализирует кадры пользовательского интерфейса, и указывается каждый визуализированный кадр на временной шкале. Кадры, которые обрабатываются в течение 16,6 миллисекунд, необходимых для поддержания стабильных 60 кадров в секунду, обозначаются зелеными кружками. Кадры, рендеринг которых занимает более 16,6 миллисекунд, обозначаются желтыми или красными кружками.
Нажатие на кружок кадра выделяет его и предоставляет дополнительную информацию о работе, проделанной системой для визуализации этого кадра, включая оповещения. В отчете также показаны методы, которые система выполняла при рендеринге этого кадра. Вы можете изучить эти методы, чтобы определить потенциальные причины сбоев пользовательского интерфейса.
После выбора медленного кадра вы можете увидеть предупреждение в нижней части отчета. Предупреждение, показанное на рис. 5, указывает на то, что основная проблема с фреймом заключается в том, что слишком много времени тратится на переработку и перепривязку ListView
. В трассировке есть ссылки на соответствующие события, которые объясняют больше о том, что система делает в это время.
Чтобы просмотреть каждое оповещение, обнаруженное инструментом в вашей трассировке, а также количество раз, когда устройство активировало каждое оповещение, щелкните вкладку «Предупреждения» в правой части окна, как показано на рис. 6. Панель «Предупреждения» позволяет просмотреть какие проблемы возникают в трассировке и как часто они способствуют зависаниям. Вы можете думать об этой панели как о списке ошибок, которые необходимо исправить. Зачастую небольшое изменение или улучшение в одной области может привести к удалению всего набора предупреждений.
Если вы видите, что в потоке пользовательского интерфейса выполняется слишком много работы, используйте один из следующих подходов, чтобы определить, какие методы потребляют слишком много процессорного времени:
- Если у вас есть представление о том, какие методы могут вызывать узкие места, добавьте к этим методам маркеры трассировки. Дополнительные сведения см. в руководстве по определению пользовательских событий в коде .
- Если вы не уверены в источнике узких мест пользовательского интерфейса, используйте профилировщик ЦП , доступный в Android Studio. Вы можете создавать журналы трассировки , а затем импортировать и проверять их с помощью CPU Profiler.