Euh, une VM Java comme HotSpot compile (JIT) en code natif une ligne de code à la première exécution. Et c'est gardé en cache. Si tu repasses dans le même code tu repasses pas par du JIT.
Bref y'a un temps de chauffe et après c'est principalement du code natif qui tourne.
Franchement la compilation AOT, ca sert pas à grand chose, quelques cas tout de même :
- réduire le temps de démarrage (pour un serveur on s'en tape le coquillard)
- support des plateformes qui interdisent le JIT (iPhone coucou)
- quelques améliorations de perfs qui demandent un algo d'optimisation long et pas faisable par JIT en live.
- une moindre consommation mémoire.
Cependant :
- l'AOT peut être plus lent : le code binaire prend plus de place et doit être chargé entièrement au démarrage de l'application : le démarrage peut être plus lent, ce qui contrebalance nettement l'avantage précédement : des fois c'est plus rapide, des fois c'est plus lent.
Pour 95% des applications, l'AOT n'apporte pas grand chose, au final c'est ce que fait le JIT en maintenant un cache.
[^] # Re: Pourquoi Mono ?
Posté par TImaniac (site web personnel) . En réponse au journal Utiliser Mono sans peur. Évalué à 2.
http://shootout.alioth.debian.org/gp4/benchmark.php?test=all(...)
Euh, une VM Java comme HotSpot compile (JIT) en code natif une ligne de code à la première exécution. Et c'est gardé en cache. Si tu repasses dans le même code tu repasses pas par du JIT.
Bref y'a un temps de chauffe et après c'est principalement du code natif qui tourne.
Franchement la compilation AOT, ca sert pas à grand chose, quelques cas tout de même :
- réduire le temps de démarrage (pour un serveur on s'en tape le coquillard)
- support des plateformes qui interdisent le JIT (iPhone coucou)
- quelques améliorations de perfs qui demandent un algo d'optimisation long et pas faisable par JIT en live.
- une moindre consommation mémoire.
Cependant :
- l'AOT peut être plus lent : le code binaire prend plus de place et doit être chargé entièrement au démarrage de l'application : le démarrage peut être plus lent, ce qui contrebalance nettement l'avantage précédement : des fois c'est plus rapide, des fois c'est plus lent.
Pour 95% des applications, l'AOT n'apporte pas grand chose, au final c'est ce que fait le JIT en maintenant un cache.