Qu'est-ce que HotSpot exactement et quel est son rapport avec la JVM et OpenJDK ? S'agit-il d'une bibliothèque ? Que fait-il exactement ?
Par ailleurs, quelle est la différence entre OpenJDK et HotSpot ?
Qu'est-ce que HotSpot exactement et quel est son rapport avec la JVM et OpenJDK ? S'agit-il d'une bibliothèque ? Que fait-il exactement ?
Par ailleurs, quelle est la différence entre OpenJDK et HotSpot ?
La définition de ce qu'est exactement une machine virtuelle Java est énoncée dans le document Spécification de la machine virtuelle Java
La JVM est par définition une machine virtuelle C'est une machine logicielle qui simule ce que fait une machine réelle. Comme une vraie machine, elle possède un jeu d'instructions , une architecture d'ordinateur virtuel et un modèle d'exécution. Il est capable d'exécuter du code écrit avec ce jeu d'instructions virtuel, à peu près comme une machine réelle peut exécuter du code machine.
HotSpot est une mise en œuvre du concept de JVM. Elle a été développée à l'origine par Sun, et appartient maintenant à Oracle. Il existe d'autres implémentations de la spécification JVM, telles que JRockit , IBM J9 parmi beaucoup d'autres.
Ver Liste des implémentations de la machine virtuelle Java
El OpenJDK est un projet dans le cadre duquel une implémentation open source de HotSpot (et de nombreux autres éléments du JDK, par exemple le compilateur, les API, les outils, etc) est développée.
Note : AdoptOpenJDK a changé son nom en Adoptium après être passé à la Fondation Eclipse à la fin de 2020-06.
Différence entre JVM et HotSpot ?
A Machine virtuelle Java (JVM) est un ordinateur imaginaire qui n'a jamais été construit physiquement en tant que matériel. Une JVM exécute des programmes compilés sur son ordinateur imaginaire. jeu d'instructions écrit en mémoire comme un représentation intermédiaire connu sous le nom de bytecode .
Au moment de l'exécution, le bytecode doit être traduit du jeu d'instructions imaginaire au jeu d'instructions réel du CPU de la machine hôte. Cela peut être fait à la volée par un interpréteur. Ou bien le bytecode peut être entièrement compilé et mis en cache, pour s'exécuter plus rapidement qu'avec l'interprète, dans un processus connu sous le nom de Compilation juste-à-temps (JIT) .
Au fil des décennies, il y a eu de nombreux implémentations de la JVM . La plupart sont tombés.
HotSpot est une mise en œuvre de la technologie JIT qui commence par une exécution interprétée et observe les performances réelles de l'application. Certaines parties de l'application sont alors sélectionnées pour être entièrement compilées en code natif et mises en cache, pour une exécution beaucoup plus rapide. HotSpot a été développé à Soleil en tant que produit commercial. Après l'acquisition de Sun, Oracle a fait évoluer HotSpot en combinant des éléments importants de son produit concurrent, JRockit . HotSpot est maintenant à code source ouvert par l'intermédiaire de l'initiative OpenJDK disponible gratuitement.
Une autre implémentation de ce type dans OpenJ9 développé par IBM, et maintenant en libre accès par l'intermédiaire de l'initiative Fondation Eclipse et disponible gratuitement. Certaines distributions de JVM construites sur OpenJDK remplacent HotSpot par OpenJ9 tout en continuant à utiliser le reste d'OpenJDK, comme le système de gestion de l'environnement de travail. Java SE les bibliothèques de classe. Par exemple, les distributions préconstruites disponibles à l'adresse suivante AdoptOpenJDK fournir votre choix de HotSpot o OpenJ9 sur certains matériels.
Diagramme montrant l'histoire de la fusion de HotSpot et JRockit, et OpenJ9 disponible dans AdoptOpenJDK.
Qu'est-ce que HotSpot exactement et quel est son rapport avec la JVM et OpenJDK ? S'agit-il d'une bibliothèque ? Que fait-il exactement ?
OpenJ9 est généralement connu pour un démarrage beaucoup plus rapide et une utilisation de la mémoire beaucoup plus faible au départ, alors que HotSpot peut fonctionner plus efficacement dans l'ensemble pour les applications de longue durée. Les deux sont bien considérés, bien usés, et disponibles avec les distributions d'OpenJDK.
OpenJDK est un projet open-source qui implémente entièrement le système de gestion de l'information de l'UE. Spécifications Java , JSR et JEP qui définissent la plate-forme Java . Toutes les implémentations de JVM que je connais aujourd'hui sont basées entièrement ou principalement sur l'OpenJDK. base de code et utilise la technologie HotSpot ou OpenJ9.
En plus de la JVM, OpenJDK fournit également une implémentation en code source pour toutes les classes requises par les spécifications de Java SE, telles que java.lang , java.util , java.time et d'autres paquets.
Par ailleurs, quelle est la différence entre OpenJDK et HotSpot ?
Le code source de HotSpot est hébergée, maintenue et développée dans le cadre de l'initiative de l'Union européenne pour le développement durable. OpenJDK projet. L'alternative, OpenJ9 est hébergée, maintenue et développée au sein de l'Agence européenne pour la sécurité et la santé au travail. Fondation Eclipse tout en remplaçant HotSpot dans certaines distributions d'OpenJDK.
Certaines distributions de la technologie Java choisissent d'être livrées avec HotSpot. Certaines distributions choisissent de substituer la partie de l OpenJDK codebase qui est HotSpot avec l'alternative, OpenJ9 .
Voici un organigramme qui vous aidera à choisir un fournisseur pour une distribution de la plate-forme Java.
OpenJDK (Open Java Development Kit) est une implémentation libre et gratuite de la plate-forme Java, Standard Edition (Java SE). openjdk est un projet lancé par Sun Microsystems, aujourd'hui pris en charge par de nombreuses entreprises et la communauté pour construire un kit de développement Java absolument en open source. Selon la documentation officielle .
OpenJDK est une implémentation open-source des spécifications de la plate-forme Java, Standard Edition (Java SE). En mai 2007, Sun a mis à la disposition de la communauté OpenJDK une version du kit de développement Java (JDK) pour Java SE, sous forme de logiciel libre, sous la licence GNU General Public License version 2 (GPLv2). Sun a annoncé la création d'un conseil d'administration provisoire pour la communauté OpenJDK. Sun a également annoncé que les implémentations basées sur OpenJDK peuvent utiliser le kit de compatibilité technique Java SE 6 (JCK) pour établir la compatibilité avec la spécification Java SE 6.
El Projet OpenJDK se compose d'un certain nombre d'éléments - HotSpot (la machine virtuelle) Pour plus d'informations, visitez le site Web de la Commission européenne. site .
La JVM actuelle fournie par Sun/Oracle s'appelle HotSpot car il recherche les points chauds du code (les endroits où le code est utilisé de manière plus intensive) pour une optimisation "juste à temps". De la wikipedia , HotSpot, publié sous le nom de "Java HotSpot Performance Engine", est une machine virtuelle Java pour ordinateurs de bureau et serveurs, maintenue et distribuée par Oracle Corporation.
HotSpot est, comme mentionné ci-dessus, une implémentation multiplateforme du concept de la machine virtuelle Java (JVM), et est distribué avec l'OpenJDK (Java Developer Kit), sous la licence publique générale GNU. HotSpot est écrit principalement en C++, et a été développé à l'origine par Sun Microsystems. Il est actuellement développé dans le cadre du projet OpenJDK, à l'adresse www.java.net. La JVM HotSpot était disponible en tant que module complémentaire pour Java 1.2, et a ensuite été utilisée comme JVM Sun par défaut dans Java 1.3. La JVM est actuellement dans sa version 7, Build b147, et est soutenue par une communauté de développement active.
Pour plus d'informations, allez sur le site : https://www.java.net/
Bon codage !
La JVM est une machine abstraite (spécifications). HotSpot, OpenJDK et JRockit, etc. sont des implémentations de la JVM.
Implémentations libres et open source
HotSpot la principale implémentation de référence de Java VM
OpenJDK - Open Java Development Kit est une implémentation gratuite et open source sous licence GNU General Public License (GNU GPL) avec une exception de liaison.
Implémentations propriétaires
pour plus mises en œuvre
lien explique les différences entre HotSpot et JRocket
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.