JRat (Runtime Analysis Toolkit)                                                                                        


Description 

  JRat est un outil d'analyse dynamique (analyse une application Java pendant son exécution). Les applications crées avec Java 1.4 ou moins peuvent être instrumentalisées au build-time (c'est-à-dire que l'on insère des instructions de traçage à l'intérieur du bytecode compilé); avec les applications Java compilées avec la version 1.5 et plus, il n'est même plus nécessaire de toucher au byecode, la machine virtuelle peut "écouter" les instructions qui sont exécutées et interagir avec JRat.

  Une fois l'exécution du programme terminée, JRat produit une trace d'exécution décrivant l'exécution de l'application. Cette trace d'exécution est un fichier portant l'extension .xrat, qui est en format XML, et sa structure est plutôt simple. La taille de la trace peut par contre être très volumineuse.


Fichier de trace JRat (Cliquer pour agrandir)


  Il est possible de configurer JRat pour écouter seulement quelques classes ou méthodes, ce qui réduit grandement la taille des traces produites.  JRat est surtout utilisé pour faire le profilage d'une application (c'est-à-dire mesurer le temps d'exécution pour identifier puis optimiser les goulots d'étranglements d'une application, 

Expérience personnelle

  L'équipe du centre de recherche pour la défense de Valcartier avait deux besoins précis:
 Une fois la trace produite, il était possible de convertir cette trace en diagramme de séquence UML pour visualiser les traces d'exécution.

Commentaires

  Le fichier trace, portant l'extension .xrat, est dans un format XML plutôt simple ne définissant qu'une seule balise <call> et quelques attributs.  La simplicité du format qui facile la parsage de la trace d'exécution. Comme les traces sont souvent volumineuses, il est plus judicieux de la parser avec une librarie SAX plutôt que DOM.

Références