Profiler p/Android

66 views
Skip to first unread message

Pablo Augusto Sznajdleder

unread,
Sep 27, 2013, 12:03:32 PM9/27/13
to jav...@googlegroups.com
Hola, alguién conoce algún buen profiler para Java/Android?

Estoy desarrollando una app que, al correrla, consume en promedio el 50% de CPU. Además instancia objetos dramáticamente pero no puedo encontrar cuales son.

Gracias !!
Pablo.

--
Ing. Pablo Augusto Sznajdleder_________
(5411) 4637-8879  |  15-4419-JAVA (5282)

email: pab...@pablosz.com.ar
skype: pabloszn
http://www.PabloSZ.com.ar
http://www.JavaSOS.com.ar

Geovanny Mendoza Gonzalez

unread,
Sep 27, 2013, 12:47:16 PM9/27/13
to jav...@googlegroups.com
 
Fácil has que cada objeto cuando se instancie cree un log y así te vas a dar cuenta cual es el que consume recursos

Pablo Lillia

unread,
Sep 27, 2013, 7:04:33 PM9/27/13
to jav...@googlegroups.com
El 27/09/13 13:03, Pablo Augusto Sznajdleder escribi�:
> Hola, algui�n conoce alg�n buen profiler para Java/Android?
>
> Estoy desarrollando una app que, al correrla, consume en promedio el
> 50% de CPU. Adem�s instancia objetos dram�ticamente pero no puedo
> encontrar cuales son.
>
> Gracias !!
> Pablo.
>

Eclipse tiene un profiler, pero la verdad lo us� muy poco. En cambio us�
bastante m�s al MAT (memory analyzer tool) de Eclipse, que no es un
profiler en si, pero es muy bueno para analizar el consumo del heap y
detectar memory leaks. Tiene un par de informes con eur�stica que me
resultaron �tiles.

Otras herramientas similares que us�, fueron el viejo JConsole y el
VisualVM. Ambos vienen con el JDK y son visuales (Swing). El segundo, se
puede (o se pod�a) bajar tambi�n fuera del JDK, para tenerlo m�s
actualizado. Adem�s, en el JDK hay varias herramientas de linea de
comandos que vale la pena conocer, porque permiten generar volcados del
heap o de threads, como por ejemplo el jmap, �tiles para un servidor al
que no te pod�s conectar por red con las anteriores, y del que no se
dispone de un entorno gr�fico. El JConsole y el VisualVM pueden correrse
para perfilar una VM local o en una VM remota (en ese caso hay que abrir
un puerto en el firewall, y agregar alg�n par�metro a la VM).

Una novedad que tiene poco m�s de una semana, es que con el �ltimo JDK 7
update 40, Oracle entrega gratis el Java Mission Control, una
herramienta excelente que antes era de JRockit. A�n no la prob�, pero
vale la pena investigarla. Se puede usar gratis, pero de usarse en
producci�n deber�a adquirirse una licencia (bastante t�pico de Oracle).
Una de las ventajas, es que esta herramienta tendr�a un bajo impacto en
la performance de un servidor productivo en vivo, en cambio con las
otras casi siempre lo aniquilan.

El jmap est� bueno para hacer volcados y analizarlos despu�s offline, en
el MAT o el VisualVM. Pero ojo, el tiempo que lleva generar un volcado
(y el tama�o del archivo) es directamente proporcional al tama�o del
heap, y durante el mismo la VM dejar� de responder.

En Netbeans tiene herramientas similares a las Eclipse, iguales o
mejores. Tanto para el MAT de Eclipse o el equivalente en Netbeans, hay
muy buenos videos y tutoriales (youtube y otros) de c�mo usarlos.
Buscalos en los sitios de tu IDE y en la Red. Sinceramente requieren
algo de entrenamiento y pr�ctica al principio para poder sacarles el
jugo e ir directo al problema, pero vale la pena invertirles un poco de
tiempo, porque ayudan much�simo a diagnosticar problemas como el que
comentabas.

Otro tipo de ayuda, pero que puede ser igual o m�s efectivo seg�n el
caso: te recomiendo usar herramientas de an�lisis est�tico del c�digo,
como findbugs o pmd, directamente desde el IDE o con la ayuda de Sonar,
o lanzadas por maven o como prefieras. Te lo recomiendo a Sonar, que
junto con Jenkins son un camino de ida ;-). Es recontra problable que si
hay errores l�gicos (y siempre aparece algo que sorprende) o de malas
pr�cticas, que sean detectadas y escrachadas por estos analizadores.
Aparte, son muy buenas herramientas para asegurarse que alguien del
equipo pague facturas por sus mocos cada tanto, muejeje. A veces lo que
puede ser dif�cil de encontrar con un profiler, salta a las claras con
estas herramientas y mucho antes. Y si las incorporan en su flujo de
trabajo, les van a alertar los problemas potenciales antes de que se
pasen a ser m�s graves. Junto a un servidor de integraci�n continua como
Jenkins, y/o con Sonar, ayudan much�simo y son impagables.

Slds.-
Pablo

Germán Andrés Pesce

unread,
Sep 27, 2013, 12:08:23 PM9/27/13
to jav...@googlegroups.com

Saludos,
Germán Pesce


--
www.JavaSOS.com
---
Has recibido este mensaje porque estás suscrito al grupo "JavaSOS" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a javasos+u...@googlegroups.com.
Visita este grupo en http://groups.google.com/group/javasos.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.

Reply all
Reply to author
Forward
0 new messages