56 votes

Est-ce que LuaJIT est vraiment plus rapide que tous les autres langages dynamiques compilés à la volée (JIT) ?

Selon le benchmark du jeu de langage informatique, l'implémentation LuaJIT semble battre toutes les autres langues dynamiques JIT-ées (V8, Tracemonkey, PLT Scheme, Erlang HIPE) par un ordre de grandeur. (lien)

Je sais que ces benchmarks ne sont pas représentatifs (comme ils le disent : "Quelles implémentations de langage de programmation ont les programmes de benchmark les plus rapides ?"), mais c'est quand même vraiment impressionnant.

En pratique, est-ce vraiment le cas ? Quelqu'un a testé cette implémentation Lua ?

40voto

Doug Currie Points 26016

Il y a une bonne discussion sur Lambda the Ultimate. LuaJIT est très bon.

De nombreuses personnes ont signalé des améliorations de vitesse impressionnantes sur lua-l (la liste de diffusion lua). Les améliorations de vitesse sont particulièrement impressionnantes pour le code Lua pur; le compilateur de trace n'est pas aussi efficace lorsque de nombreuses appels sont faits à des fonctions C dans des modules de bibliothèque chargeables.

17voto

tbear Points 444

Dans mon cas (développement d'un prototype de jeu), je n'ai observé aucune amélioration de performances. J'utilise lua pour l'intégration, donc il y a beaucoup d'appels à des fonctions de bibliothèque C++. Même si la boucle principale est dans un script lua et que toute la logique importante est implémentée en lua, les performances globales étaient déterminées par les moteurs de rendu et les moteurs physiques implémentés en C++. Le lua original est déjà suffisamment rapide pour de telles applications.

6voto

J'ai fait une expérience avec la leçon apprise ici : http://www.sampalib.org/luajit2.0_tunning.html Certaines données ne sont plus aussi valables (maxmcode=1024 suffit), mais luajit apporte une amélioration robuste sur un script Lua pur de 600 lignes de code (pas d'appel C pour frapper les performances...) qui n'est pas une application à grande échelle ni un cas d'utilisation intégré mais bien plus que les benchmarks.

0voto

pansz Points 142

Les performances du JIT dépendent de deux choses: les performances du langage de script d'origine et les performances du compilateur.

Le compilateur est une technique assez mature et la plupart des compilateurs JIT offrent des performances comparables. Cependant, Lua lui-même, c'est-à-dire Lua sans JIT, est probablement l'un des langages de script les plus rapides.

Lua est plus rapide que Java sans JIT. Lua est plus rapide que JavaScript sans JIT. Lua est plus rapide que la plupart des langages de script sans JIT.

donc,

Lua-JIT est plus rapide que Java avec JIT (le Java de Sun), Lua-JIT est plus rapide que V8 (JavaScript avec JIT), etc, ...

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