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 :
Compétences requises : langages C et Java, linux, gout pour la compilation et l'optimisation de programmes.

Encadrement : Philippe Clauss

Prendre contact avec Philippe Clauss (clauss@icps.u-strasbg.fr)

sujets de projets