Y a pas photo, du code compilé est toujours plus rapide que du code interprété puisqu'au final, ce code interprété va être parsé et va taper sur des fonctions de plus bas niveau (fonctions C pour PHP et certainement pour Java). Donc si tu écris directement les fonctions de bas niveau, le "code natif", ça ne peut qu'être plus rapide, et plus rapide aussi que du code qui a été précompilé Just in Time. Puis le code intermédiaire obtenu doit encore être traduit en langage machine avant d'être exécuté
La machine virtuelle, même avec du code déjà compilé, est aussi une étape supplémentaire avant l'exécution de ce code. L'avantage d'employer une machine virtuelle, c'est surtout qu'on a pas à se soucier de l'architecture de la machine sur laquelle le programme doit tourner. Elle fait ce qu'il faut pour que le programme tourne de la même façon partout. N'empêche que ça alourdit un peu le processus.
En ce qui concerne PHP, c'est son moteur Zend qui s'occupe de traduire le code source et de l'exécuter, mais apparemment il est pas tip top niveau performances...
La machine virtuelle, même avec du code déjà compilé, est aussi une étape supplémentaire avant l'exécution de ce code. L'avantage d'employer une machine virtuelle, c'est surtout qu'on a pas à se soucier de l'architecture de la machine sur laquelle le programme doit tourner. Elle fait ce qu'il faut pour que le programme tourne de la même façon partout. N'empêche que ça alourdit un peu le processus.
En ce qui concerne PHP, c'est son moteur Zend qui s'occupe de traduire le code source et de l'exécuter, mais apparemment il est pas tip top niveau performances...