Necesito encontrar dónde están los cuellos de botella en mi aplicación de Android.
¿Qué herramientas o técnicas de creación de perfiles puedo utilizar?
Necesito encontrar dónde están los cuellos de botella en mi aplicación de Android.
¿Qué herramientas o técnicas de creación de perfiles puedo utilizar?
Respuestas:
Puede utilizar Traceview. Está lejos de ser ideal, pero funciona. Este artículo describe cómo usarlo.
DDMS es el mejor para Android. De forma predeterminada, se incluye con el complemento ADT.
Este documento con un ejemplo detallado debería ayudarlo a lidiar con DDMS.
Para análisis de memoria, pruebe Eclipse MAT
Depende de lo que vayas a probar.
En caso de que desarrolle aplicaciones para Android, debería probar la clase TimingLogger. Eche un vistazo a este artículo que describe el uso de la clase auxiliar TimingLogger.
Una muy buena herramienta es JMeter y también hay un complemento para Android .
Si no desea utilizar herramientas externas, sino una forma muy estándar, para medir el tiempo transcurrido, debe utilizar System.nanoTime (). No debe usar currentTimeMillis, porque mide el tiempo del reloj de pared y, ya que ningún reloj de computadora es perfecto (todos ocasionalmente necesitan ser corregidos), hay un proceso que se ejecuta y continuamente emite pequeñas correcciones al reloj del sistema. Sin mencionar la corrección del segundo intercalar.
Aunque currentTimeMillis se usa a menudo, sigue siendo incorrecto medir el tiempo transcurrido y el tiempo. De todos modos, como la invocación lleva algo de tiempo, no debe esperar cronometrar correctamente intervalos muy muy pequeños. Pero eso no debería ser un problema al trabajar con Android.
Te mostraré un ejemplo:
long startTime = System.nanoTime();
// run/call the method
long endTime = System.nanoTime();
long diff = endTime - startTime ;
System.out.println("Elapsed milliseconds: " + diff /1000000);
También puede echar un vistazo a esta biblioteca gratuita: http://jetm.void.fm/ .
También puede encontrar un tutorial para JMeter .
Otra herramienta recomendada en http://developer.android.com/training/articles/perf-tips.html es Caliper: https://code.google.com/p/caliper/ . (No lo he usado, así que no sé mucho al respecto).