| Fiche technique | |
|---|---|
| Plateforme : | Linux, Windows et macOS |
| Auteur : | Oracle |
| Date de publication : | 2019 à maintenant |
| Catégorie : | Machine virtuelle |
Sommaire
GraalVM accélère les performances des applications tout en consommant moins de ressources, améliorant ainsi leur efficacité et réduisant les coûts informatiques. Pour ce faire, il compile votre application Java en amont en un binaire natif. Ce binaire est plus petit, démarre jusqu'à 100 fois plus vite, offre des performances optimales immédiatement et utilise moins de mémoire et de CPU qu'une application exécutée sur une machine virtuelle Java (JVM). Grâce à l'optimisation guidée par profil et au ramasse-miettes G1 (Garbage-First), vous bénéficiez d'une latence réduite et de performances et d'un débit optimaux équivalents, voire supérieurs, à ceux d'une application exécutée sur une JVM.
Principaux avantages
Les principaux avantages de GraalVM sont les suivants :
- Faible consommation de ressources : Une application Java compilée en amont par GraalVM nécessite moins de mémoire et de CPU pour s'exécuter. La compilation à la volée (JIT) ne consomme ni mémoire ni cycles CPU. Par conséquent, votre application nécessite moins de ressources et son exploitation à grande échelle est plus économique.
- Démarrage rapide : GraalVM vous permet de démarrer plus rapidement votre application Java en initialisant certaines parties lors de la compilation plutôt qu'à l'exécution, et d'atteindre instantanément des performances optimales et prévisibles, sans période de préchauffage.
- Packaging compact : Une application Java compilée à l'avance par GraalVM est compacte et peut être facilement empaquetée dans une image conteneur légère pour un déploiement rapide et efficace.
- Sécurité renforcée : GraalVM réduit la surface d'attaque de votre application Java en excluant : le code inaccessible (classes, méthodes et champs inutilisés), l'infrastructure de compilation à la volée et le code initialisé lors de la compilation. L'hypothèse d'un monde fermé de GraalVM empêche votre application de charger du code inconnu en désactivant les fonctionnalités dynamiques telles que la réflexion, la sérialisation, etc. à l'exécution, et exige une liste d'inclusion explicite de ces classes, méthodes et champs lors de la compilation. GraalVM peut intégrer une nomenclature logicielle (SBOM) à votre binaire, ce qui facilite l'utilisation d'outils d'analyse de sécurité courants pour vérifier la présence de vulnérabilités et d'expositions communes (CVE) publiées dans votre application Java. Créez facilement des microservices natifs de l'infonuagique : GraalVM est compatible avec les cadres d'applications de microservices populaires tels que Micronaut, Spring Boot, Helidon et Quarkus, ainsi qu'avec les plateformes infonuagique comme Oracle Cloud Infrastructure (OCI), Amazon Web Services (AWS), Google Cloud Platform (GCP) et Microsoft Azure. Vous pouvez ainsi créer facilement des microservices Java natifs de l'infonuagique, compilés sous forme de binaires, empaquetés dans des conteneurs légers et exécutés sur les plateformes infonuagiques les plus populaires.
- Étendez votre application Java avec Python et d'autres langages : GraalVM vous permet d'intégrer des langages comme Python, JavaScript et autres pour étendre votre application Java.
- Utilisez vos outils de développement et de supervision existants : Vos outils de développement et de supervision d'applications Java existants fonctionnent avec les binaires d'application GraalVM. GraalVM fournit des plugiciels de build pour Maven et Gradle, ainsi que GitHub Actions pour l'intégration et le déploiement continus (CI/CD). GraalVM prend en charge Java Flight Recorder (JFR), Java Management Extensions (JMX), les vidages de mémoire, VisualVM et d'autres outils de supervision. GraalVM fonctionne avec les éditeurs/IDE Java existants et les cadres d'applications de tests unitaires tels que JUnit.