Мне нужно найти узкие места в моем приложении для Android.
Какие инструменты или методы профилирования я могу использовать?
java
android
performance
profiling
Teedyay
источник
источник
Ответы:
Вы можете использовать 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/ . (Я не использовал его, поэтому мало что знаю об этом.)
источник