web-dev-qa-db-fra.com

LuaJIT est-il vraiment plus rapide que tous les autres langages dynamiques JIT-ed?

Selon le jeu de référence du langage informatique, l'implémentation LuaJIT semble battre tous les autres langages dynamiques JIT-ed (V8, Tracemonkey, PLT Scheme, Erlang HIPE) par an ordre de grandeur .

Je sais que ces benchmarks ne sont pas représentatifs (comme on dit: "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é la mise en œuvre de Lua?

48

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

Beaucoup de gens ont signalé des accélérations impressionnantes sur lua-l (la liste de diffusion lua). Les accélérations sont les plus impressionnantes pour le code Lua pur; le compilateur de trace n'est pas aussi efficace lorsqu'il y a beaucoup d'appels aux fonctions C dans les modules de bibliothèque chargeables.

33
Doug Currie

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

16
tbear

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 valides (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 perfs ...) qui n'est pas une application à grande échelle ni un cas d'utilisation embarqué mais bien plus que les benchmarks.

6