2012-02-15 42 views
15

Tengo algunos métodos más grandes que estoy tratando de optimizar en Java. He estado usando jVisualVM para hacer la mayoría de mis perfiles, ya que ofrece puntos calientes de llamadas a métodos y es un gran punto de partida.Java línea por línea Método/Función de perfiles - Analizador y/o complemento Eclipse

Lo que estoy buscando es un generador de perfiles de línea por línea que me puede ayudar a reducir lo que lleva tanto tiempo. El ovbioso trabajo que he usado en el pasado es simplemente System.currentTimeMillis() y, en casos más extremos, usando Java CPUTime (hecho a través de JNI). Hay algunos perfiladores como Intel Parallel Amplifier que funciona con C & Visual Studio, pero ¿hay algo como esto para Java?

Ambas opciones son un poco tediosas, ¿hay algo (plug-in de Eclipse u otro) que pueda realizar análisis de puntos calientes línea por línea?

Respuesta

4

JProfiler tiene resolución de número de línea. No está habilitado de forma predeterminada, pero si edita la configuración de creación de perfiles, hay una casilla de verificación denominados "números de línea de registro y mostrarlos en el árbol de llamadas" en la pestaña "Método de grabación de llamadas":

enter image description here

responsabilidad:. Mi empresa desarrolla JProfiler

+4

Estás mintiendo Bueno, por lo menos. parcialmente. Los números de línea son solo para el sitio de llamada, no los contenidos del método real. – Dexter

+0

Ciertamente no estoy "mintiendo". Por supuesto, los números de línea se graban para los sitios de llamadas, porque eso es lo único que se puede medir. En una vista de árbol de llamadas, el "contenido de método" de interés es el del método donde se encuentra el sitio de llamadas, no el del método que se está llamando. Su problema puede ser que esté buscando una vista diferente donde pueda ver la fuente del método con información de tiempo anotada. A partir de 8.0, esa no es una característica ofrecida por JProfiler. –

0

En dynaTrace puede hacer algo similar al instrumentar todos los métodos invocados, sin embargo, es una herramienta comercial. Alternativamente, puede escribir su propia herramienta de instrumento utilizando ASM (por ejemplo) (pero es extremadamente tedioso :()

Cuestiones relacionadas