Как просмотреть профилирование собственного кода Android? - PullRequest
2 голосов
/ 29 марта 2010

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

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

Ответы [ 2 ]

4 голосов
/ 29 марта 2010

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

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

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

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

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

1 голос
/ 18 января 2011

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

...