53 votes

Pourquoi LuaJIT est-il si bon?

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

Cette comparaison des langages de programmation montre que LuaJIT à une amélioration dix fois plus que la normale Lua mise en œuvre. Pourquoi le changement si grand? Est-il quelque chose de spécifique au sujet de Lua qui le rend beaucoup profité de compilation JIT? Python est dynamiquement typé et compilé en bytecode ainsi, alors pourquoi ne pas PyPy (qui a JIT maintenant, je crois) montre un grand bond dans la performance?

64voto

Ben Karel Points 2731

Mike Pall en a parlé dans quelques endroits:

Comme avec tous les performant système, la réponse à la fin se résume à deux choses: des algorithmes et de l'ingénierie. LuaJIT utilise des techniques de compilation, et il a également une très finement conçu la mise en œuvre. Par exemple, lorsque la fantaisie des techniques de compilation ne peut pas gérer un morceau de code, LuaJIT revient à un très rapide interpréteur écrit en x86 assemblée.

LuaJIT obtient le double de points sur l'aspect de l'ingénierie, parce que non seulement LuaJIT lui-même bien conçu, mais le langage Lua lui-même a un moyen plus simple et plus cohérente de la conception de Python et JavaScript. Cela rend (un peu) plus facile pour une mise en œuvre afin de fournir des performances toujours bon.

-3voto

lama12345 Points 169

Un inconvénient qui rend LuaJit si bonne (la performance), c’est ce qui est mauvais pour l’autre côté: le code Lua n’est plus fiable.

C'est un gros problème pour les développeurs de jeux, qui veulent autoriser des administrateurs de serveur aléatoires à envoyer du code Lua au client pour archiver des mods rapides et dynamiques.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X