J'ai besoin de trouver où se trouvent les goulots d'étranglement dans mon application Android.
Quels outils ou techniques de profilage puis-je utiliser?
J'ai besoin de trouver où se trouvent les goulots d'étranglement dans mon application Android.
Quels outils ou techniques de profilage puis-je utiliser?
Réponses:
Vous pouvez utiliser Traceview. C'est loin d'être idéal, mais ça marche. Cet article explique comment l'utiliser.
DDMS est le meilleur pour Android. Par défaut, il est inclus avec le plugin ADT.
Ce document avec un exemple détaillé devrait vous aider à gérer le DDMS.
Pour l'analyse de la mémoire, essayez Eclipse MAT
Cela dépend de ce que vous allez tester.
Si vous développez des applications pour Android, vous devriez essayer la classe TimingLogger. Jetez un œil à cet article décrivant l'utilisation de la classe d'assistance TimingLogger.
Un très bon outil est JMeter et il existe également un plugin pour Android .
si vous ne souhaitez pas utiliser d'outils externes, mais d'une manière très standard, pour mesurer le temps écoulé, vous devez utiliser System.nanoTime (). Vous ne devriez pas utiliser currentTimeMillis, car il mesure l'heure de l'horloge murale et, comme aucune horloge d'ordinateur n'est parfaite (elles doivent toutes parfois être corrigées), il y a un processus qui s'exécute et émet continuellement de petites corrections à l'horloge système. Sans parler de la deuxième correction intercalaire.
Bien que currentTimeMillis soit souvent utilisé, il est toujours incorrect de mesurer le temps écoulé et la synchronisation. Quoi qu'il en soit, comme l'appel prend un certain temps, vous ne devez pas vous attendre à chronométrer correctement de très très petits intervalles. Mais cela ne devrait pas être un problème avec Android.
Je vais vous montrer un exemple:
long startTime = System.nanoTime();
// run/call the method
long endTime = System.nanoTime();
long diff = endTime - startTime ;
System.out.println("Elapsed milliseconds: " + diff /1000000);
Vous pouvez également consulter cette bibliothèque gratuite: http://jetm.void.fm/ .
Vous pouvez également trouver un didacticiel pour JMeter .
Un autre outil recommandé dans http://developer.android.com/training/articles/perf-tips.html est Caliper: https://code.google.com/p/caliper/ . (Je ne l'ai pas utilisé, donc je n'en sais pas grand-chose.)