Question Pourquoi LuaJIT est si bon?


EDIT: malheureusement, LuaJIT a été retiré de la comparaison dans le lien ci-dessous.

Ce Comparaison des langages de programmation montre que LuaJIT a plus que décuplé l’implémentation normale de Lua. Pourquoi le changement est-il si grand? Y a-t-il quelque chose de spécifique à propos de Lua qui en fait beaucoup bénéficier de la compilation JIT? Python est dynamiquement tapé et compilé en bytecode aussi, alors pourquoi PyPy (qui a JIT maintenant, je crois) ne montre pas un saut de performance aussi important?


51
2018-02-06 05:24


origine


Réponses:


Mike Pall en a parlé dans quelques endroits:

Comme pour tout système performant, la réponse se résume à deux choses: les algorithmes et l'ingénierie. LuaJIT utilise des techniques de compilation avancées et une implémentation très fine. Par exemple, lorsque les techniques de compilation sophistiquées ne peuvent pas gérer un morceau de code, LuaJIT utilise un interpréteur très rapide écrit dans un assemblage x86.

LuaJIT obtient deux points sur l'aspect technique, car LuaJIT est non seulement bien conçu, mais le langage Lua lui-même a une conception plus simple et plus cohérente que Python et JavaScript. Cela rend (marginalement) plus facile pour une mise en œuvre de fournir des performances constantes.


60
2018-02-06 05:40