C'est une façon de voir les choses. Par contre je ne sais pas ce qui est plus complexe entre interpréter un byte-code et compiler un byte-code vers du natif et exécuter ce natif (ce que font les JIT).
Les JIT font souvent les deux : ils analysent les bouts de bytecode fréquemment exécutés et les compilent, tout en interprétant les bouts de bytecode moins fréquents. Autrement le temps de compilation pourrait devenir trop long.
La version native essaie d'apporter plus de compilation que celle que peut raisonnablement faire le JIT sans trop impiéter sur le temps de démarrage. Elle ne compile a priori pas tout pour autant non plus, tout n'étant pas compilable en natif statiquement en Java (en tous cas, c'était ainsi la dernière fois que j'ai lu des trucs sur GraalVM), donc il reste des bouts de bytecode qui sont interprétés et potentiellement même compilés JIT à l'exécution si estimé rentable (si l'analyse de performances est activé dans les options).
[^] # Re: Quelques remarques
Posté par anaseto . En réponse au lien Linux et la sécurité, tel un désert et un oasis ?. Évalué à 2.
Les JIT font souvent les deux : ils analysent les bouts de bytecode fréquemment exécutés et les compilent, tout en interprétant les bouts de bytecode moins fréquents. Autrement le temps de compilation pourrait devenir trop long.
La version native essaie d'apporter plus de compilation que celle que peut raisonnablement faire le JIT sans trop impiéter sur le temps de démarrage. Elle ne compile a priori pas tout pour autant non plus, tout n'étant pas compilable en natif statiquement en Java (en tous cas, c'était ainsi la dernière fois que j'ai lu des trucs sur GraalVM), donc il reste des bouts de bytecode qui sont interprétés et potentiellement même compilés JIT à l'exécution si estimé rentable (si l'analyse de performances est activé dans les options).
Bref, c'est une machinerie bien complexe.