Perf4J: Librería para estadísticas de rendimiento

Esta es otra de esas librerías que periódicamente me vienen a la cabeza por su sencillez y utilidad 🙂

Perf4J son un conjunto de clases de utilidad para calcular y mostrar estadísticas de rendimiento en código Java.

Me gusta como lo definen, es completamente descriptivo:

Perf4J es a System.currentTimeMillis() lo que Log4J a System.out.println()

Normalmente para calcular el tiempo que se tarda en una operación haríamos:

Ejecución:

Aquí quedaría:

Que generaría estas trazas:

Estadísticas de Rendimiento:

Una vez ejecutado y obtenido los logs podemos procesarlos con el mismo Per4J y obtener unas estadísticas

java -jar perf4j-0.9.12.jar times.log

O en formato CSV.

Integración no intrusiva

Probablemente de lo más interesante es que anotando un método con la anotación @Profiled nos generará la información de ese método:

Aunque sea necesario integrar con AspectJ o con Spring AOP:

Integración con Log4J

Otro punto importante es que puede integrarse fácilmente con Log4J usando algunos de sus varios Appenders para generar estadísticas, gráficas,…

Deja un comentario