2011-08-05 23 views
6

Tengo una operación larga que quiero perfilar en JProfiler (u otras sugerencias), pero el método es muy recursivo, por lo que la vista de árbol en la Vista de CPU no ayuda mucho. Me muestra los tiempos de CPU como este:jprofiler u otro: ¿cómo puedo acumular llamadas a métodos recursivos?

beginOperation 100% 
|- recursiveMethod 99% 
| | - recursiveMethod 98% 
| | | - recursiveMethod 97% 
| | | | - ...more recursion 
| | |- otherMethods 1% 
| | - otherMethod 1% 
| - otherMethods 1% 

Ves, el recursiveMethod Realmente no toma ningún momento a todos. Por el contrario, es el otherMethods que toma tiempo, y son los que quiero perfil. Mi vista ideal mostraría recursiveMethod junto al 0% de tiempo y la otherMethods combinando cerca del 100%.

¿Hay alguna manera en JProfiler de hacer rodar esta vista para que pueda ver dónde se gasta más claramente el tiempo de mi CPU? ¿Alguien tiene una sugerencia para otro perfilador que puede hacer esto?

Nota: Estoy usando JProfiler 6, pero podría actualizar si otra versión pudiera hacer esto.

Gracias!

Respuesta

1

JProfiler tiene una vista 'Puntos calientes' útil para recopilar estos tipos de métricas de rendimiento. Para acceder a esta vista, vaya a 'Vistas de CPU' en el panel de navegación de la izquierda y 'Puntos de acceso' debe ser el segundo botón de la izquierda en la parte inferior de la ventana de la aplicación. (Estas instrucciones se basan en JProfiler 5, pero creo que esto es lo mismo en la versión 6).

Puede ordenar por la hora de inhernet (probablemente lo que está buscando), el tiempo promedio y las invocaciones y luego seguir la pila de llamadas desde donde se hicieron esas llamadas costosas. En la parte superior de la vista, también hay un menú desplegable para cambiar el 'Tipo de zona activa', para que pueda ver el tiempo consumido por las consultas JDBC, la URL invocada y muchas otras opciones.

+0

Gracias. Los puntos de acceso me dieron el roll up que estaba buscando. –

Cuestiones relacionadas