Как просматривать профилирование нативного кода Android?

StackOverflow https://stackoverflow.com/questions/2539932

Вопрос

Я начал свой эмулятор с профиля. Затем я отслеживал файлы трассировки до ~/.Android/avd/rodgers_emulator_15.avd/traces/profile, где есть шесть файлов: qtrace.bb, qtrace.exc, qtrace.insn, qtrace.method, qtrace.pid, qtrace .static. Я не могу понять, что делать с этими файлами. Я попробовал DMtracedUpp и TraceView во всех файлах, но ни один из них не генерирует какие -либо выводы, с которыми я могу сделать что -либо.

Как я могу просматривать долю времени, взятых нативными методами вызовов на Android?

Это было полезно?

Решение

Вам нужно использовать tracedmdump Чтобы преобразовать выход. Это функция оболочки, определенная в build/envsetup.sh В полных источниках Android. Если вы используете SDK, а не строите с полного дерева, я не уверен, что это сработает.

(Если у вас нет источников и вы хотите взглянуть на функцию отслеживания, вы можете увидеть это здесь.)

Если вы использовали emulator -trace profile, ты бы бежал tracedmdump profile. Анкет Это будет копаться через различные двоичные файлы, чтобы получить символическую информацию и связывать ее с данными трассировки, генерируя резюме HTML и совместимый с TraceView File.

Стоит отметить, что виртуальная машина будет работать медленнее с включенным профилированием (переводчик имеет накладные расходы при каждом вызове и возврате метода, и он работает в более медленной «отладке»), в то время как собственный код продолжает работать на полной скорости, поэтому у вас есть переводчик быть осторожным при выводах.

Общий комментарий: не забудьте использовать F9 или один из вызовов метода, чтобы запустить/остановить трассировку - -trace Флаг только позволяет функции.

Другие советы

Чтобы использовать эти шесть файлов, в том же каталоге есть и другие сценарии, что и у DMTRACEDUPP, таких как read_pid, read_trace, profile_trace и т. Д. Вы должны сначала запустить post_trace в каталоге трассиров их, чтобы получить информацию о профиле, например, как часто выполняется каждый базовый блок, пиды, к которым они принадлежат и т. Д.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top