2014-04-02 3 views
1

Я хотел бы узнать производительность моего приложения, особенно время рендеринга видеокадров. Я знаю DDMS в Eclipse-> DDMS Perspective-> System Information-> Frame Render Time. Однако, как было предложено в этом другом question, информация рендеринга, похоже, не появляется даже при обновлении с устройства при запуске приложения.Измерительная рамка Время рендеринга приложения для Android

После некоторых исследований, я наткнулся на эту команду из этого blog и this other one:

adb shell dumpsys gfxinfo <package-name> 

Однако, когда я запускаю эту команду, он завершает работает сразу, и я получаю выход, который выглядит следующим образом, в часть:

enter image description here

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

ответ

2

Правильный инструмент - systrace (basic docs, verbose docs). Вам понадобится устройство, которое его поддерживает, и потребует root для некоторых из более полезных бит.

Вы можете видеть, что every thread is doing, и большая часть графического материала инструментария. Я не думаю, что сами видеокодеки обычно используются, поэтому вы не сможете увидеть время декодирования аппаратного кодека, но вы можете видеть, как буферы перемещаются по системе.

Большинство интересных вещей произойдет в mediaserver или SurfaceFlinger, так что вы не увидите, что операция декодирования/рендеринга отображается в профиле метода для вашего приложения.

Смежные вопросы