Мне нужно найти узкие места в моем приложении для Android.
Какие инструменты или методы профилирования я могу использовать?
Мне нужно найти узкие места в моем приложении для Android.
Какие инструменты или методы профилирования я могу использовать?
Ответы:
Вы можете использовать Traceview. Далеко от идеала, но работает. В этой статье описывается, как его использовать.
DDMS - лучший вариант для Android. По умолчанию он включен в плагин ADT.
Этот документ с подробным примером должен помочь вам разобраться с DDMS.
Для анализа памяти попробуйте Eclipse MAT
Все зависит от того, что вы собираетесь тестировать.
Если вы разрабатываете приложения для Android, вам следует попробовать класс TimingLogger. Взгляните на эту статью, в которой описывается использование вспомогательного класса TimingLogger.
Очень хороший инструмент - JMeter, а также есть плагин для Android .
если вы не хотите использовать внешние инструменты, а используете стандартный способ измерения прошедшего времени, вы должны использовать System.nanoTime (). Вы не должны использовать currentTimeMillis, потому что он измеряет время на настенных часах, так как никакие компьютерные часы не идеальны (их все время от времени нужно корректировать), есть процесс, который выполняется и постоянно выдает небольшие корректировки системных часов. Не говоря уже о коррекции секунды координации.
Хотя currentTimeMillis часто используется, все же неправильно измерять прошедшее время и время. В любом случае, поскольку вызов занимает некоторое время, вы не должны рассчитывать правильно рассчитать очень маленькие интервалы. Но это не должно быть проблемой при работе с Android.
Я покажу вам пример:
long startTime = System.nanoTime();
// run/call the method
long endTime = System.nanoTime();
long diff = endTime - startTime ;
System.out.println("Elapsed milliseconds: " + diff /1000000);
Вы также можете взглянуть на эту бесплатную библиотеку: http://jetm.void.fm/ .
Вы также можете найти руководство по JMeter .
Другой инструмент, рекомендованный в http://developer.android.com/training/articles/perf-tips.html, - это Caliper: https://code.google.com/p/caliper/ . (Я не использовал его, поэтому мало что знаю об этом.)