Оценка вывода из systrace на Android

В настоящее время я гоняюсь за некоторыми пропущенными кадрами в своем приложении.

Вот моя трассировка..

Моя проблема в основном в том, что в моем адаптере я создаю довольно большие элементы списка. Это означает, что при прокрутке адаптер некоторое время ничего не делает, а затем он должен создать довольно большой вид. сделать переработку, я избегал в основном всех избыточных экземпляров объектов,..), есть несколько пропущенных кадров.. Это должно занять более 16 мс: /

вернемся к моей основной проблеме. Я думал, что увижу даже следы методов, которые я вызываю, прямо в моем адаптере во время вызова getView. Но я не вижу этого там. Я делаю что-то не так? Видите ли вы из этой трассировки, где находится главное узкое место моего кода? Я потерян:/

Спасибо..


person simekadam    schedule 09.09.2013    source источник
comment
Я получаю 404 от dl.dropboxusercontent.com/u/7274923/mytracefile2.html   -  person fadden    schedule 10.09.2013
comment
черт возьми..я исправлю..загружаю   -  person simekadam    schedule 10.09.2013


Ответы (1)


Я думаю, вы уже заметили ключевую вещь, которую должна сообщить вам systrace: в pid 527 performTraversals занимает 20+ миллисекунд. Кажется, это поровну разделено между getDisplayList и drawDisplayList.

Если вы посмотрите на пример использования Falcon Pro вы увидите ряд сходств, хотя в этом случае большая часть времени была потрачена на рисование (из-за значительного перерасхода). Однако большинство методов, описанных в этой статье, в целом полезны; используйте traceview, hierarchyviewer и параметры разработчика на устройстве, чтобы выявить незначительные проблемы с производительностью.

Если вы хотите видеть свои собственные методы в systrace, вы можете добавить собственные теги для конкретных приложений, начиная с Android 4.3. Пример приведен здесь.

person fadden    schedule 10.09.2013