2009-11-06 21 views
5

Estoy buscando algunos analizadores dinámicos interesantes para usar e informar para una tarea universitaria. Las herramientas deben ser:¿Cuáles son algunas herramientas interesantes, gratuitas y de código abierto de análisis dinámico para Java?

  • de código abierto (para que pueda aprender de ellos)
  • gratuito (tanto como en el discurso y la cerveza, porque quiero ser capaz de compartir los resultados, y estoy apretado -fisted, respectivamente)
  • Destinado a Java (fuente o bytecode)

Esto incluye, pero no se limita a, los perfiladores de rendimiento. Pueden realizar cualquier tipo de análisis, siempre que sea dinámico, por ejemplo, cobertura de código, corrección de múltiples subprocesos.

Los resultados generados deberían ser útiles de alguna manera, pero no tienen que ser resistencia industrial.

Pregunta similar:

¿Cuáles son algunos, libre, herramientas interesantes análisis dinámico de código abierto para Java?

Respuesta

2

Cobertura y Emma realizarán análisis de cobertura de código.

En términos de corrección de subprocesos múltiples, FindBugs hará algo de esto. Sin embargo, realiza un análisis estático. es decir, no mientras el programa se está ejecutando.

0

He encontrado que Yourkit es un perfilador bastante sorprendente para Java. Realiza un maravilloso análisis de puntos de conexión y perfiles de memoria. Lo he usado para encontrar muchas pérdidas de memoria y muchas optimizaciones.

También tiene un buen plugin de integración con Eclipse (si ese es su bolsa)

+0

Yourkit no es gratuito ni de código abierto. Aunque tiene un período de evaluación. – Grundlefleck

+0

¿Es Yourkit de código abierto? –

+0

Ahh, no detecté ese pedazo de la pregunta. Sin embargo, es una gran herramienta, vale la pena considerarlo de todos modos. – Benj

2

Salida Glassbox, un agente de resolución de problemas para las aplicaciones Java que diagnostica automáticamente los problemas comunes. Glassbox se despliega como un archivo war en su servidor de aplicaciones y luego utiliza AspectJ load time weaving para monitorear componentes de aplicaciones y otros artefactos, para identificar problemas como llamadas remotas en exceso o fallidas, consultas lentas, demasiadas consultas de bases de datos, contención de hilos, incluso qué solicitud los parámetros causaron fallas.

Glassbox supervisa las aplicaciones de forma no invasiva mediante el uso de aspectos para rastrear las interacciones de los componentes. También supervisamos los datos JMX incorporados, especialmente en una VM Java 5, se muestrean los datos de subprocesos (cada 100 ms de forma predeterminada). A medida que se procesa una solicitud, resumimos eventos notables, como el tiempo empleado y los parámetros necesarios para hacer que las cosas sean más lentas o fallidas. También detectamos operaciones de mayor nivel (como acciones Struts o controladores Spring) que usamos para informar. Nuestro cliente web AJAX luego proporciona resúmenes de estado por operación en las máquinas que se monitorean y generamos un análisis más detallado a pedido. Glassbox permite monitorear clusters de servidores: la aplicación web usa JMX Remote o RMI directa para acceder a datos desde servidores remotos. También proporcionamos acceso remoto JMX a las estadísticas de resumen de nivel inferior.

+0

+1 Para una herramienta de aspecto interesante. ¿Sabes por casualidad si está restringido a las aplicaciones web? – Grundlefleck

+0

Glassbox es un WAR, por lo que debe implementarse en un servidor de aplicaciones, pero puede monitorear recursos como JMS y EJB. Entonces, no, no está restringido a aplicaciones web. –

+0

Disculpe lo que probablemente sea una pregunta tonta, ¿puede analizar cualquier programa Java dado, como una aplicación Swing? Cuenta con muchas funcionalidades, pero no puedo decir que el sitio elija no mencionar las cosas básicas, o si no es capaz. – Grundlefleck

0

Uno que he usado antes es un perfilador de rendimiento llamado JRat.

Se ejecuta como un agente de Java e informa estadísticas como el tiempo pasado dentro de un método determinado.

Cuestiones relacionadas