Трассировка

Режим трассировки позволяет разработчику оценивать скорость выполнения программы (или ее части) и определять пути по улучшению производительности.

Трассировка Activity

1. подключить трассировку приложения:

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        //трассировка в файл my.trace в корень на карточку
        Debug.startMethodTracing("my");
}
@Override
protected void onDestroy() {
        //остановить трассировку
        Debug.stopMethodTracing();
        super.onDestroy();
}

2. После работы приложения под трассировщиком скопировать файл my.trace из карточки в каталог SDK tools

из командной строки: adb pull sdcard/my.trace my.trace

Если используется IDE (Eclipse, Android Studio) файл можно скопировать с помощью  File explorer из состава DDMS.

3. Запуск программы просмотра трассировки

traceview my.trace

Описание колонок:

Incl% и Inclusive – Время (и в процентах от общего времени), проведенное в этом методе, включая все методы, которые он вызывает (в миллисекундах)

Excl% и Exclusive – Время (и в процентах от общего времени), затраченное на выполнение фактически в этом методе. Без вложенных функций.

Calls+Recursive calls – Два значения: число раз, сколько раз этот метод вызывался (из вне) и сколько раз он вызывал себя

Time/ Cal – время потраченное на вызов (см. пред. столбец)

Группа “Parents” являются методами, которые будут вызывать этот метод.  Группа “Children” – вызывают данным метод

Подробнее про утилиту Traceview читайте в этой статье (EN).
В 1С аналогичный механизм (наиболее близкое понятие) называется «Замер производительности».

Posted in: Производительность и отладка