¿Cómo puedo crear un perfil de mi aplicación de Android? [cerrado]


93

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?


No estoy familiarizado con Android. ¿Puedes ejecutar la aplicación con un depurador que puedas interrumpir? Si es así, este método funciona: stackoverflow.com/questions/375913/…
Mike Dunlavey

Mmm, interesante. Un poco laborioso, pero potencialmente útil para detectar los problemas de rendimiento más evidentes. Gracias.
teedyay

Entiendo cómo puede pensar eso: stackoverflow.com/questions/2624667/…
Mike Dunlavey

Hoy en día puedes crear buenos perfiles dentro de Eclipse. Olvídese del lanzamiento autónomo / manual de TraceView, etc. Espero escribir un artículo de blog sobre eso, con más detalles. Hazme ping si necesitas más detalles.
KarolDepka

2
Sugieres que hay algo mejor que TraceView o DDMS. ¿Qué es?
Peri Hartman

Respuestas:


37

Puede utilizar Traceview. Está lejos de ser ideal, pero funciona. Este artículo describe cómo usarlo.


2
Cuando ejecuto esto, dice que la versión de la línea de comandos está en desuso y luego sale. ¿Cuál es el nuevo método?
gonzobrains


11

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 .


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.