Portage et amélioration du profiler Javana sur la dernière version de la machine virtuelle Jikes
Contexte :
Javana est un outil logiciel permettant de construire un profiler de programmes Java s'éxécutant à travers la machine virtuelle Jikes d'IBM et le profiler de code binaire DIOTA.
Cet outil est intéressant par sa souplesse d'utilisation, mais surtout
car il permet aussi bien de collecter des informations de bas niveau
que de haut niveau, et de les relier. La collecte d'informations de bas
niveau est en effet difficile dans le cadre de programmes Java,
l'utilisation d'une machine virtuelle provoquant un mélange
d'instructions propres au programme Java et propres à la machine
virtuelle. On pourra par exemple connaître l'adresse mémoire d'un
certain objet.
La version actuelle de Javana est portée sur une assez ancienne version de la VM Jikes (2.4.1) alors que la dernière version est la 3.0.1. Le patch fourni dans la distribution de Javana ne s'applique plus aux fichiers sources de la dernière version de la VM Jikes.
L'API de Javana
pourrait également être sensiblement améliorée de plusieurs manières.
Par exemple, lors de la collecte des créations et accès à des objets,
il serait utile de pouvoir limiter cette collecte aux objets propres au
programme Java, et éviter la collecte d'objets de plus bas niveau. Les
structures de données de Javana pourraient sans doute également être
étendues afin de pouvoir accéder à d'autres informations, comme par
exemple les entrées et retours de méthodes, ainsi que l'enchaînement
des invocations.
Travail à effectuer :
Étude détaillée de l'architecture logicielle de Javana et de son fonctionnement
Portage de Javana sur la VM Jikes 3.0.1
Améliorations de l'API et des structures de données de Javana