À l'heure actuelle, la plupart des navigateurs traditionnels ont commencé à intégrer l'optimisation des compilateurs JIT à leurs interpréteurs JavaScript/machines virtuelles. C'est bon pour tout le monde. Maintenant, j'aurais du mal à savoir exactement quelles optimisations ils effectuent et comment en tirer le meilleur parti. Quelles sont les références sur les optimisations dans chacun des principaux moteurs JavaScript?Quelles sont les optimisations des moteurs JavaScript modernes?
Contexte:
Je travaille sur un compilateur qui génère JavaScript à partir d'un niveau supérieur & langue plus sûr (plug sans vergogne: on l'appelle OPA et il est très cool) et, compte tenu de la taille des applications que je suis En générant, je voudrais que mon code JavaScript soit aussi rapide et efficace que possible. Je peux gérer des optimisations de haut niveau, mais j'ai besoin d'en savoir plus sur les transformations d'exécution effectuées, afin de savoir quel code de bas niveau produira les meilleurs résultats. Un exemple, du haut de mon esprit: le langage que je compiler intégrera bientôt le support de la paresse. Les moteurs JIT se comportent-ils bien avec des définitions de fonctions paresseuses?
Personnellement, je pense que la meilleure façon de tirer parti des optimisations compilateur/JIT est juste générer votre code aussi naturellement, aussi lisible , et aussi maintenable que possible et laissez le compilateur/jit travailler c'est magique. Toute tentative de cibler spécifiquement les optimisations du compilateur entraînera probablement un code moins maintenable, et dans un an ou deux, lorsque les compilateurs auront tous été modifiés, vos optimisations ne seront plus valides. –
Eh bien, le code lisible/maintenable n'est pas vraiment mon objectif. Je compile à partir d'un langage qui est assez différent de JS, donc je ne m'attends pas à ce que quelqu'un fasse beaucoup de lecture sur le JS généré. Quant à la magie JIT et l'invalidité des optimisations, eh bien, oui, vous avez un point. – Yoric