2012-05-29 13 views
10

FindBugs tiene la capacidad de informar errores de "rendimiento", es decir, fragmentos de código que pueden causar problemas de rendimiento. ¿Hay alguna otra herramienta que pueda encontrar posibles causas de problemas de rendimiento en Java?Buscador de errores de rendimiento de Java

¿Alguna herramienta puede hacer una referencia cruzada de estos errores con datos de rendimiento (por ejemplo, volcados de almacenamiento dinámico, rastreos) para verificar que se trata de problemas reales o clasificar su importancia?

+0

Te recomiendo que uses "Brain - the wonder head filler". Y por supuesto, un perfilador de CPU. –

Respuesta

4

Este tipo de herramienta se llama profiler.

A diferencia de FindBugs y similares, los profilers son dinámicos, lo que significa que recopilan datos de rendimiento a medida que el programa se ejecuta. Pueden señalar problemas relacionados con el uso de CPU y memoria, contención de bloqueo, interbloqueos, etc.

Para obtener una descripción detallada de las características de una de estas herramientas comerciales, consulte .

Para una herramienta no comercial, vea VisualVM Features.

+0

Eso suena bien, pero sería mejor tener una herramienta que correlaciona eso con un análisis estático de FindBugs para seleccionar los casos fáciles. – daniel

+0

@daniel: No he encontrado ninguna de esas herramientas. Además, identificar los problemas de rendimiento a través del análisis estático es extremadamente difícil. – NPE

+0

FindBugs funcionan estáticamente (solo en el origen). Un perfilador mira un programa en ejecución. Algunas cosas aparentemente se pueden detectar sin tener que ejecutar el programa. –

3

Puede usar JProfiler también. JProfiler es un perfilador Java galardonado todo en uno. La GUI intuitiva de JProfiler lo ayuda a encontrar cuellos de botella de rendimiento, eliminar fugas de memoria y resolver problemas de enhebrado.

0

Sugiero usar un generador de perfiles como este en Netbeans.

  • Create Unit Tests con una hipótesis de rendimiento en mente.
  • 1.) Pruebe la cantidad de objetos creados
  • Pregúntese: ¿Esperaba eso?
  • Busque "procesador" comedores de -method
  • 2.) Está bien o debe este método sea más rápido, porque no hay nada especial en el método (sólo un bucle mal o algo así)?

  • ¡solo busque el valor atípico! (arriba 3 o 5)

Aprenderá mucho sobre su aplicación.