VT2020-GraalVM-Fiche
Rappels sur l'architecture de la plateforme Java
L'architecture de GraalVM se basant sur celle d'un Java Development Toolkit, un rappel sur le fonctionnement de la plateforme Java peut s'avérer utile.
Tout d'abord, le Java a la particularité d'être un langage à la fois compilé et interprété. Les tâches de compilation et d'interprétation sont distinctes et réalisées par des composants différents. Comme on peut le voir sur le schéma ci-dessous, le code Java est d'abord compilé en bytecode par un Java Compiler pour ensuite être interprété et exécuté par une Java Virtual Machine.
Il faut donc distinguer dans cette architecture :
- La Java Virtual Machine (JVM), qui interprète et exécute le code.
- Le Java Runtime Environment (JRE), qui un environnement d'exécution contenant des librairies et la JVM.
- Le Java Development Toolkit (JDK), qui est composé de librairies en Java, du JRE et du Java Compiler.
GraalVM
Abstract
"GraalVM is a high-performance multilingual runtime. It is designed to accelerate the execution of applications written in Java and other JVM languages while also providing runtimes for JavaScript, Ruby, Python, and a number of other popular languages. GraalVM’s polyglot capabilities make it possible to mix multiple programming languages in a single application while eliminating any foreign language call costs."
Documentation officielle de GraalVM
Motivations
Constats
Ce qui existait déjà
Solution
Architecture
Installation
Utilisation
GraalVM est très simple à utiliser. Plusieurs options sont possibles :
Par ligne de commande
Dans un IDE
Dans l'IDE, il suffit de remplacer le path du JRE ou du JDK par le path de GraalVM. Sous eclipse par exemple, cela peut se faire en allant dans Window/Preferences/Java/Installed JREs
Installer des langages
Par défaut, GraalVM ne comprend que le Java. Cependant, il est possible d'installer d'autres langages à l'aide d'une simple commande.
$GRAALVM_HOME/bin/gu install nom_du_langage
Demonstration
Sources
Veille Technologique 2020
- Année : VT2021
- Sujet : GraalVM
- Slides : Slides
- Auteurs : User:Alexis.Rollin