2011-02-28 17 views
13

Uno de mis componentes está tardando demasiado tiempo en ejecutarse. Llama a muchos servicios que a su vez llaman a muchos métodos de dao. Ahora, ¿hay alguna manera de aprovechar el tiempo de cada método al que llama?
No quiero escribir System.currentmillis antes y después de cada método para calcular el tiempo ya que hay demasiados métodos.
Creo que es posible que necesite usar interceptores o cualquier analista puede hacerlo. No estoy seguro, por favor ayuda.¿Cómo saber qué método está tomando mucho tiempo?

+1

creo que la mayoría de los entornos de desarrollo tienen una funcionalidad de perfiles incorporado. – gigadot

+0

@gigadot estoy usando eclipse –

+0

Lamentablemente soy fan de Netbeans pero quiero agregar que los tiempos medidos por Profiler solo le dan la estimación relativa. No es el tiempo real pasado en el método. El generador de perfiles debe adherirse al método y eso causa la sobrecarga adicional. – gigadot

Respuesta

7

Utilice jvisualvm que debería venir con JDK (si no recuerdo mal). Es una GUI para su JVM, y tiene funciones realmente agradables. Echa un vistazo a su features hay algunas capturas de pantalla, así ...

Y puede seguir estos pasos para integrarlo como lanzador en Eclipse Steps to integrate in eclipse

+0

estoy usando esto, pero o bien no puedo encontrar dónde muestra el tiempo empleado por el método o no muestra la hora en absoluto. –

+1

Cuando está ejecutando una aplicación, debe activar la CPU y el perfilador/muestreador de memoria. Entonces verás activamente los puntos calientes. Una vez que finaliza la ejecución, elabora un informe muy claro en el que puede supervisar las diferentes partes del software que se obstruye. (ver: http://visualvm.java.net/images/profiler.jpg) Espero que eso ayude. – posdef

0

No lo veo como medir el tiempo para encontrar el problema.

Usa su lentitud para exponerlo. Simplemente use el mismo método que usaría si fuera un ciclo infinito.

Es decir, pause algunas veces mientras está siendo lento, y cada vez inspeccione la pila de llamadas de cada hilo. Los métodos y las líneas de código culpables aparecerán en varias muestras. Compruebe el last paragraph of this post.

Here's more on how it works.

Cuestiones relacionadas