Muszę dowiedzieć się, gdzie są wąskie gardła w mojej aplikacji na Androida.
Z jakich narzędzi lub technik profilowania mogę skorzystać?
java
android
performance
profiling
teedyay
źródło
źródło
Odpowiedzi:
Możesz użyć Traceview. Daleko mu do ideału, ale działa. W tym artykule opisano, jak z niego korzystać.
źródło
DDMS jest najlepszy dla Androida. Domyślnie jest dołączany do wtyczki ADT.
Tendokument ze szczegółowym przykładem powinien pomóc w radzeniu sobie z DDMS.Do analizy pamięci wypróbuj Eclipse MAT
źródło
To zależy, co zamierzasz przetestować.
Jeśli tworzysz aplikacje na Androida, powinieneś wypróbować klasę TimingLogger. Zapoznaj się z tym artykułem opisującym użycie klasy pomocniczej TimingLogger.
Bardzo dobrym narzędziem jest JMeter i jest też wtyczka dla Androida .
jeśli nie chcesz używać zewnętrznych narzędzi, ale bardzo standardowy sposób, aby mierzyć upływający czas, musisz użyć System.nanoTime (). Nie powinieneś używać currentTimeMillis, ponieważ mierzy czas zegara ściennego, a ponieważ żaden zegar komputera nie jest doskonały (wszystkie czasami wymagają korekty), istnieje proces, który działa i nieustannie wprowadza niewielkie poprawki do zegara systemowego. Nie wspominając o korekcie sekundy przestępnej.
Chociaż currentTimeMillis jest często używany, pomiar upływającego czasu i synchronizacji jest nadal nieprawidłowy. W każdym razie, ponieważ wywołanie zajmuje trochę czasu, nie należy oczekiwać prawidłowego mierzenia bardzo małych odstępów czasu. Ale to nie powinno stanowić problemu przy pracy z Androidem.
Pokażę Ci przykład:
long startTime = System.nanoTime(); // run/call the method long endTime = System.nanoTime(); long diff = endTime - startTime ; System.out.println("Elapsed milliseconds: " + diff /1000000);
Możesz również zajrzeć do tej bezpłatnej biblioteki: http://jetm.void.fm/ .
Możesz również znaleźć samouczek dotyczący JMeter .
źródło
Kolejnym narzędziem polecanym w http://developer.android.com/training/articles/perf-tips.html jest Caliper: https://code.google.com/p/caliper/ . (Nie korzystałem z niego, więc niewiele o tym wiem.)
źródło