OVH Cloud OVH Cloud

JIT

1 réponse
Avatar
Giraudon Cyril
Bonjour,

Beaucoup de documents sur la compilation just in time mais je reste dans
le flou :
JIT fait-il partie du SDK ?
Faut-il absolument un autre compilateur ?

D'une manière pratique, que faut-il faire pour compiler, exécuter du
code en JIT ? Quelles sont les options correspondantes ?

Merci beaucoup.

Cyril.

1 réponse

Avatar
vclassine
Giraudon Cyril wrote in message news:...
Bonjour,

Beaucoup de documents sur la compilation just in time mais je reste dans
le flou :
JIT fait-il partie du SDK ?
Non, dans le sens où ça ne fait pas parti des specs de Java et donc de

tout les SDK dispo. Par contre la machine virtuelle ( = JVM pour Java
Virtual Machine) livré avec le SDK de Sun (appelée JRE) intègre, au
mois sos windows, un compilateur JIT.

Faut-il absolument un autre compilateur ?
Le compilateur que tu utilises (javac ou autres) pour transformer ton

source en byte code (pseudo-code éxécutable par une JVM) n'as rien à
voir avec le JIT.

La compilation JIT est faites lors de l'éxécution.

On dit qu'une JVM éxécute du byte code c'est a dire qu'a partir de
.class elle intéragit avec le système natif (OS+DRIVERS+MATOS) pour
faire diverses choses comme afficher une fenêtre, faire une addition,
ou encore concaténer deux string... Pour ce faire elle à deux options,
shématiquement:

- l'interprétation: la JVM lit les lignes de byte-code une à une
et éxécute les actions correspondantes en appelant, par exemple, des
fonctions de DLL du système (attention j'explique le principe pas la
réalité des JVM).
- la compilation JIT: lorsqu'une classe est utilisée la machine
virtuelle la compile (byte code --> code natif) à la volée et
l'éxécute ensuite comme si il s'agissait d'un programme en C compilé
sur la plate-forme en question...




D'une manière pratique, que faut-il faire pour compiler,
Rien ça ne se joue pas à la compilation...


exécuter du code en JIT ?
Utiliser une JVM qui intègre un compilateur JIT.


Quelles sont les options correspondantes ?
Si le mode JIT n'est pas actif par défaut (ce qui doit être rare pour

les JVM le supportant) voir la doc de la JVM en question pour
connaitre l'option qui va bien...


Merci beaucoup.
De rien...


Cyril.