Почему LuaJIT так хорош? - PullRequest
       18

Почему LuaJIT так хорош?

52 голосов
/ 06 февраля 2011

РЕДАКТИРОВАТЬ: к сожалению LuaJIT был исключен из сравнения по ссылке ниже.

Это сравнение языков программирования показывает, что LuaJIT имеет более чем десятикратное улучшение по сравнению с обычной реализацией Lua. Почему изменения так велики? Есть ли в Lua что-то конкретное, что делает его полезным для компиляции JIT? Python динамически типизируется и также компилируется в байт-код, так почему же PyPy (который теперь имеет JIT, я считаю) не показывает такой большой скачок производительности?

1 Ответ

63 голосов
/ 06 февраля 2011

Майк Палл говорил об этом в нескольких местах:

Как и в случае с любой производительной системой, ответ в итоге сводится к двум вещам: алгоритмам и разработке. LuaJIT использует передовые методы компиляции, а также имеет очень тонкую реализацию. Например, когда причудливые методы компиляции не могут обрабатывать кусок кода, LuaJIT прибегает к очень быстрому интерпретатору, написанному на сборке x86.

LuaJIT получает двойные баллы по инженерному аспекту, потому что LuaJIT не только хорошо спроектирован, но и сам язык Lua имеет более простой и согласованный дизайн, чем Python и JavaScript. Это облегчает (незначительно) реализацию для обеспечения стабильно хорошей производительности.

...