L’Université de Linz a mis au point un compilateur Java ultrarapide

La méthode de compilation mise au point par l’Institut des logiciels systèmes (SSW) de l’Université Johannes Kepler réduit significativement le temps d’exécution des programmes en Java : appliquée au compilateur client Sun Microsystems Java Hotspot, elle a fait baisser les temps d’exécution de 25% en moyenne et de 90% à l’occasion.

De fait, les programmes en Java sont généralement compilés à la volée, au moment même de leur exécution, le code Java ayant été préalablement transformé en un langage intermédiaire, le bytecode Java. Or la compilation à la volée ou l’interprétation du pseudo-code se doit d’être la plus rapide possible ; dans l’idéal, elle doit être transparente pour l’utilisateur.

Hanspeter Mössenböck et Christian Wimmer travaillent à optimiser l’interprétation en améliorant la structuration des données et la gestion du registre de calcul, ainsi qu’en éliminant les sous-expressions communes. Ils s’appuient pour cela sur un compilateur utilisant deux représentations intermédiaires des programmes : une représentation de haut niveau (HIR), par graphes avec assignation unique statique (SSA), et une représentation de bas niveau (LIR), créée par modifications successives de la première.

Leur nouvelle avancée a consisté à abandonner la méthode d’allocations de registre par coloriage de graphes pour revenir à une méthode d’allocation par scan linéaire, qui est bien plus rapide et peut donner des résultats tout aussi satisfaisants que la précédente, sous réserve des optimisations effectuées.

Leurs algorithmes, présentés lors de la conférence de développeurs VEE’05 (‘Virtual Execution Environnements’), pourraient être implémentés dans une prochaine version de Java ; les travaux de Hanspeter Mössenböck et Christian Wimmer ont d’ailleurs été financés par Sun Microsystems et réalisés en collaboration avec le département de recherche externe de l’entreprise, créatrice de la technologie Java.

Pour en savoir plus :

  • Thomas Kotzmann, Hanspeter Mössenböck (2005). ‘Escape Analysis in the Context of Dynamic Compilation and Deoptimization’, Proceedings of the 1st ACM/USENIX International Conference on Virtual Execution Environments (VEE’05), pp. 111-120, doi:10.1145/1064979.1064996
  • Christian Wimmer, Hanspeter Mössenböck (2005). ‘Optimized Interval Splitting in a Linear Scan Register Allocator’, Proceedings of the 1st ACM/USENIX International Conference on Virtual Execution Environments (VEE’05), pp. 132-141, 10.1145/1064979.1064998
  • Institut für Systemsoftware, Johannes Kepler Universität Linz, Altenberger Straße 69, Informatikgebäude (SP3), 2. Stock, AT-4040 Linz, tél. : +43 732 2468 4341, fax : +43 732 2468 4345, https://www.jku.at/institut-fuer-systemsoftware/
Référence
SC 201
Table des révisions :
Créé le (ou avant le)
Créé par

Rédaction et première publication dans le cadre du Bulletin Électronique du Service Scientifique de l’Ambassade de France à Vienne et plus précisément dans le cadre du BE Autriche numéro 67 du 15 juillet 2005 (http://www.bulletins-electroniques.com/actualites/28885.htm)

Publié le
Publié par
Temps passé pour la publication
2,00 heures

Republication après correction de l’accentuation et de la ponctuation, relectures et réécritures mineures, puis ajout des liens, des coordonnées et des références bibliographiques ; en complément, correction des vues de la page d’accueil de façon à générer un flux RSS valide au sens du validateur du W3C