Qu'est-ce que l'utilisation de la JVM si JIT l'exécution du bytecode à la conversion des instructions machine
Je suis vraiment du mal à comprendre la chose suivante
Auparavant, je sais:
Lorsqu'un programme Java est compilé .class
fichier sera généré. Dans ce code est sous la forme d'octets. Puis le JVM
traduira ce byte code dans la machine compréhensible format.
Maintenant, je vois dans l'une des questions dans la
Juste-À-Temps (JIT) compilateur est une fonction du moment de l'exécution
interprète, qu'au lieu de l'interprétation du bytecode à chaque fois une méthode
est invoquée, compile le bytecode en code machine
les instructions de la machine en cours
Donc, ici, JIT est la conversion du bytecode pour des instructions machine. Alors qu'est-ce que l'utilisation de la JVM. Nous sommes en mesure de le faire avec JIT. À ma connaissance, JIT est seulement pour améliorer les performances de la JVM.
Vous devez vous connecter pour publier un commentaire.
Le JIT est juste partie de la JVM. D'autres éléments incluent le pseudo-code de l'interprète, le chargement de classe de vérification et de mécanismes pour établir des liens, et le code natif de soutien pour des choses comme la réflexion, l'I/O et ainsi de suite.
En ce sens, l'équipe ne peut pas faire de la JVM courir plus vite à tous. Au lieu de cela, il rend code Java courir plus vite ... qu'il ne le serait si la JVM juste de l'interprétation.
En réalité, la JVM ne commencer l'interprétation du bytecode. Après une période, la JVM utilise ensuite son compilateur JIT compiler fortement les méthodes utilisées en code natif, à l'aide de statistiques qui ont été recueillies lors de l'interprétation de régler le code pour le problème à la main.
Par ailleurs, cette partie du texte que vous avez cité est maladroit et techniquement inexact:
En fait, l'équipe n'est pas une fonction de l'interpréteur. Plutôt, le JIT est la fonctionnalité de la machine qui travaille aux côtés de l'interprète.
Pour être clair :
JVM effectue tout comme :
JIT
La Machine Virtuelle Java (JVM) fournit à l'ensemble de l'environnement pour l'exécution d'un programme Java. Il s'intègre avec le Système d'Exploitation, les charges de classes, et exécute les programmes. Le Juste-À-Temps compilateur JIT () est juste une petite pièce qui peut être désactivé (-Xint), mais lorsqu'il est activé, permet l'amélioration de la performance. Il y a eu des implémentations de la machine qui ne comprend pas une équipe commune d'enquête, et des implémentations qui a travaillé par la pré-compilation Java en code machine tout de même que les langages traditionnels, tels que C ou C++.
Il compile juste à temps pour la JVM avec les optimisations.