Пример стека вызовов, Пример стека вызовов

Стеки вызовов полезны для выявления горячих точек ЦП или разделов кода, выполнение которых занимает много времени. Стеки вызовов помогают понять, какая часть кода была выполнена и почему она была вызвана.

Обзор примера стека вызовов

Чтобы выполнить выборку стека вызовов, выберите задачу «Найти горячие точки ЦП (пример стека вызовов)» на вкладке «Главная страница» профилировщика Android Studio. После анализа записи вы увидите следующие визуальные эффекты:

В дополнение к временным шкалам использования ЦП и взаимодействий в разделе «Потоки» отображаются кадры для каждого вызова, который выполняет ваше приложение и система. Вот несколько советов по навигации по образцу стека вызовов:

  • Разверните интересующую цепочку и используйте сочетания клавиш для навигации по кадрам стека. Щелкните кадр стека, чтобы получить подробную информацию о событии и связанных с ним вызовах на панели «Анализ» .
  • Чтобы отфильтровать определенные типы кадров стека, нажмите «Свернуть кадры» и отметьте типы кадров, которые вы хотите скрыть. При сворачивании кадров они удаляются из разделов « Потоки» и «Анализ» . В зависимости от вашего расследования вы можете захотеть свернуть кадры виртуальной машины Java (например android::AndroidRuntime::start и art::{...} ) и ядра системы (например, [kernel.kallsyms]+{offset} ). Обычно это соответствует сворачиванию фреймов, связанных с [kernel.kallsyms] , /apex/ и /system/* .

Поскольку программа Java/Kotlin обычно выполняется через виртуальную машину Java, когда Android Studio собирает стек вызовов для программы Java/Kotlin, этот стек обычно включает в себя не только код Java/Kotlin, но и собственный код, необходимый для запуска самой программы и чтобы программа разговаривала с системой и оборудованием.

  • Чтобы перейти к исходному коду, связанному с фреймом стека, щелкните фрейм правой кнопкой мыши и выберите «Перейти к источнику» .
  • Чтобы выделить кадр стека, связанный с событием в таблице событий, щелкните событие.

Дополнительные сведения о других визуальных элементах см. в разделе Запись трассировки системы и глоссарий диаграмм .

Пример собственного кода с использованием командной строки

Внутри Android Studio использует simpleperf для отслеживания собственного кода вашего приложения. Если вы хотите указать дополнительные параметры для Simpleperf, такие как выборка процессоров конкретных устройств или указание длительности выборки с высокой точностью, вы можете использовать simpleperf из командной строки .