Performance statistics : Perf4J pour le code java

Le framework Perf4J offre une façon élégante de faire des statistiques de performance de notre code java.

Le site Perf4J donne cette analogie qui résume bien son apport :

''Perf4J is a set of utilities for calculating and displaying performance statistics for Java code.
For developers who are familiar with logging frameworks such as log4j or logback, an analogy helps to describe Perf4J:

Perf4J is to System.currentTimeMillis() as log4j is to System.out.println()''

Ainsi comme le log4J (ou toute autre implémentation de trace log) est devenu un standard (norme), le Perf4J pourrait aussi l'être.

Notez que le terme de performance est employé dans un sens très large. Seul le temps de réponse nous préoccupe.

La démo présentée ci-après est construite avec Perf4J basé sur l'AOP de Spring ce qui permet de ne pas polluer le code existant.

Pour réaliser cette démo de façon non intrusive, l'annotation @Profiled de Perf4J et l'AOP de Spring sont utilisés.

Les versions de Spring 2+ et jdk5+ sont utilisées.

Passons à la mise en pratique de ce framework avec l'AOP Spring.

Hibernate: Afficher les valeurs des paramètres de ses requêtes

hibernate.gif

Qui n'a pas souhaité voir s'afficher, dans la requête sql/hql (query) d'Hibernate, les valeurs des paramètres au lieu des points d'interrogation ?
Par exemple, qui n'a jamais voulu avoir précisément les valeurs au lieu de (?, ?,?) dans la requête sql ci-après tracée par hibernate dans les logs:

insert into domaine  (description, libelle, id) values (?,  ?, ?)

Ce tips indique la marche à suivre.