Подтвердить что ты не робот

Является ли LuaJIT действительно быстрее, чем у всех других динамических языков JIT?

В соответствии с игрой на компьютерном языке реализация LuaJIT по-видимому, превзошла все другие динамические языки JIT-ed (V8, Tracemonkey, PLT Scheme, Erlang HIPE) на на порядок.

Я знаю, что эти тесты не являются репрезентативными (как говорят: "Какие реализации на языке программирования имеют самые быстрые тестовые программы?" ), но это все равно впечатляет.

На практике это действительно так? Кто-то протестировал эту реализацию Lua?

4b9b3361

Ответ 1

Там хорошее обсуждение в Lambda the Ultimate. LuaJIT очень хорош.

Многие люди сообщили о впечатляющих ускорениях на lua-l (список рассылки lua). Ускорение является самым впечатляющим для чистого кода Lua; компилятор трассировки не так эффективен, когда есть много вызовов функций C в загружаемых библиотечных модулях.

Ответ 2

В моем случае (разработка прототипа игры) я вообще не наблюдал улучшения производительности. Я использую lua для встраивания, поэтому есть много вызовов функций библиотеки С++. Несмотря на то, что основной цикл находится в lua script, и вся важная логика реализована в lua, общая производительность была определена с помощью движков рендеринга и физических движков, реализованных на С++. Оригинальный lua уже достаточно быстр для таких приложений.

Ответ 3

Я сделал эксперимент с извлеченным здесь уроком: http://www.sampalib.org/luajit2.0_tunning.html Некоторые данные больше недействительны (maxmcode = 1024 - достаточно), но luajit приносит сильное улучшение на 600 строк кода, чистый Lua script (нет вызова C, чтобы напасть на perfs...), который не является крупномасштабным приложением ни встроенный вариант использования, но гораздо больше, чем эталоны.

Ответ 4

Производительность JIT зависит от двух факторов: производительности исходного языка сценариев и производительности компилятора.

Компилятор - довольно зрелая техника, и большинство JIT-компиляторов имеют сопоставимую производительность. Однако сам lua, то есть lua-without-JIT, вероятно, является одним из самых быстрых языков сценариев.

lua быстрее, чем Java-без-JIT. lua быстрее, чем Javascript-без-JIT. lua быстрее, чем большинство скриптовых языков - без JIT.

так,

lua-JIT быстрее, чем Java-с-JIT (солнце Java), lua-JIT быстрее, чем V8 (Javascript-with-JIT), и т.д.,...