Поддерживает ли Traceview Android 5 "Профилирование на основе метода / трассировки" или теперь это просто профилировщик на основе выборки?

В версии Android <= 4.4 Traceview отображает все функции, выполняемые приложением в порядке его выполнения. Это реализовано с использованием API, предоставляемых Profile.cc. Основная идея заключается в том, что всякий раз, когда dvm входит / выходит из функции, профилировщик регистрирует функцию. Это называется профилированием на основе трассировки (/ метода).

Однако в версии Android>= 5, я не могу найти реализацию профилировщика на основе трассировки / метода (Profile.cc). Но внутри ART есть Profiler.cc, который в основном является профилировщиком на основе выборки.

Документация Google гласит:

"Хотя Traceview предоставляет полезную информацию, его результаты в Dalvik были искажены из-за накладных расходов на вызов метода, и использование инструмента заметно влияет на производительность во время выполнения.

ART добавляет поддержку специального профилировщика выборки, который не имеет этих ограничений. Это дает более точное представление о выполнении приложения без значительного замедления. Поддержка пробоотбора была добавлена ​​в Traceview для Dalvik в выпуске KitKat. "

Итак, мои вопросы:

  1. Android 5 поддерживает профилирование на основе трассировки (/ метода)? Если да, где находится код реализации?

  2. Если ART использует только профилирование на основе выборки, как можно регистрировать каждый метод, выполняемый приложением Android? Профилировщик на основе выборки может пропустить выполнение метода, верно?

Заранее спасибо,

0 ответов

Другие вопросы по тегам