Мне нужно найти, где узкие места находятся в моем приложении для 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 - это суппорт: https://code.google.com/p/caliper/. (Я не использовал его, поэтому я мало что знаю об этом.)