Ich muss herausfinden, wo die Engpässe in meiner Android-App liegen.
Welche Profiling-Tools oder -Techniken kann ich verwenden?
Ich muss herausfinden, wo die Engpässe in meiner Android-App liegen.
Welche Profiling-Tools oder -Techniken kann ich verwenden?
Antworten:
Sie können Traceview verwenden. Es ist alles andere als ideal, funktioniert aber. Dieser Artikel beschreibt die Verwendung.
DDMS ist das Beste für Android. Standardmäßig ist es im ADT-Plugin enthalten.
Dieses Dokument mit detailliertem Beispiel soll Ihnen beim Umgang mit DDMS helfen.
Versuchen Sie für die Speicheranalyse Eclipse MAT
Es hängt davon ab, was Sie testen werden.
Wenn Sie Anwendungen für Android entwickeln, sollten Sie die TimingLogger-Klasse ausprobieren. Schauen Sie sich diesen Artikel an , der die Verwendung der TimingLogger-Hilfsklasse beschreibt.
Ein sehr gutes Tool ist JMeter und es gibt auch ein Plugin für Android .
Wenn Sie keine externen Tools verwenden möchten, sondern eine sehr standardmäßige Methode zum Messen der verstrichenen Zeit, müssen Sie System.nanoTime () verwenden. Sie sollten currentTimeMillis nicht verwenden, da es die Wanduhrzeit misst und da keine Computeruhr perfekt ist (alle müssen gelegentlich korrigiert werden). Es gibt einen Prozess, der ausgeführt wird und kontinuierlich kleine Korrekturen an der Systemuhr vornimmt. Ganz zu schweigen von der Schaltsekundenkorrektur.
Obwohl currentTimeMillis häufig verwendet wird, ist es immer noch falsch, die verstrichene Zeit und das abgelaufene Timing zu messen. Da der Aufruf einige Zeit in Anspruch nimmt, sollten Sie jedoch nicht damit rechnen, sehr, sehr kleine Intervalle korrekt zu messen. Aber das sollte kein Problem sein, wenn man mit Android arbeitet.
Ich zeige Ihnen ein Beispiel:
long startTime = System.nanoTime();
// run/call the method
long endTime = System.nanoTime();
long diff = endTime - startTime ;
System.out.println("Elapsed milliseconds: " + diff /1000000);
Sie können sich auch diese kostenlose Bibliothek ansehen: http://jetm.void.fm/ .
Dort finden Sie auch ein Tutorial für JMeter .
Ein weiteres in http://developer.android.com/training/articles/perf-tips.html empfohlenes Tool ist Caliper: https://code.google.com/p/caliper/ . (Ich habe es nicht benutzt, deshalb weiß ich nicht viel darüber.)