Las ventajas de usar un profiler en java

En el proyecto en el que estoy trabajando, que es un proyecto de mision critica, se estan implementando algunos cambios para mejorar el desempeño de un modulo en especifico.

Este modulo es un componente importante en el funcionamiento del proyecto, su principal labor es la siguiente:

  • Consumir un mensaje de un queue de jms.
  • Validar la seguridad corporativa.
  • Validar la estructura y la semantica del mensaje.
  • Persistir el mensaje en la base de datos.
  • Reenviar el mensajes en un formato diferente, a otro modulo.

Como ven, este modulo realiza varios patrones de integracion empresariales (EIP):

Yo soy un admirador de las herramientas de analisis denominadas profiler.

Estas herramientas me ayudan a hacer un analisis dinamico de programas. Existen varias herramientas de este tipo, algunas opensource, otras con algun costo.

Al aplicarle la herramienta al modulo en cuestion, observe el siguiente comportamiento (en consumo de tiempo). El metodo resaltado es el metodo principal de ejecucion.

Como se puede observar, el tiempo que consumen (en promedio) los metodos getInstitucionPorPerfil y getTicketInfo es del 50 % (sumando el 27% y 23%).

En este punto, el modulo andaba persistiendo en promedio 7 mensajes por segundo.

Analizando el contenido de estos metodos, se observo que ambos hacian casi la misma consulta a la base de datos.

Se reemplazo la invocacion a estos metodos, por una sola consulta a la base de datos, utlizando un join de hibernate.

Ahora el modulo esta persistiendo en promedio 16 mensajes por segundo.

Creo que fue un avance bastante significativo.

Recomiendo apliamente el uso de estas herramientas.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: