Описание тега luajit
Обзор
LuaJIT - это высокопроизводительная реализация Just-In-Time(JIT) Майка Полла для языка программирования Lua. Он успешно используется в качестве промежуточного программного обеспечения для написания сценариев в играх, средствах трехмерного моделирования, численном моделировании, торговых платформах и многих других специализированных приложениях. Он сочетает в себе высокую гибкость с высокой производительностью и непревзойденно малым объемом памяти: менее 125 КБ для виртуальной машины (ВМ) плюс менее 85 КБ для JIT-компилятора (на x86).
LuaJIT находится в постоянном развитии с 2005 года. Он широко считается одной из самых быстрых реализаций динамического языка. С момента своего первого выпуска он превзошел другие динамические языки по многим межъязыковым тестам - часто с большим отрывом. В 2009 году другие виртуальные машины с динамическим языком начали догонять производительность LuaJIT 1.x. Что ж, я не мог допустить этого.;-)
2009 год также знаменует собой первый выпуск долгожданного LuaJIT 2.0. Вся виртуальная машина была переписана с нуля и постоянно оптимизирована для повышения производительности. Он сочетает в себе высокоскоростной интерпретатор, написанный на ассемблере, с современным JIT-компилятором. Инновационный компилятор трассировки интегрирован с усовершенствованной оптимизацией на основе SSA и хорошо настроенным сервером генерации кода. Это позволяет существенно снизить накладные расходы, связанные с функциями динамического языка.
Ему суждено выйти за пределы диапазона производительности, традиционно зарезервированного для автономных компиляторов статического языка.
Совместимость
LuaJIT реализует полный набор языковых функций, определенных Lua 5.1. Виртуальная машина совместима с API и ABI со стандартным интерпретатором Lua и может быть развернута в качестве замены.
LuaJIT предлагает большую производительность за счет портативности. В настоящее время он работает во всех популярных операционных системах на базе процессоров x86 или x64 (Linux, Windows, OSX и т. Д.) Или встроенных систем на базе процессоров ARM (Android, iOS) или PPC/e500v2. Другие платформы будут поддерживаться в будущем в зависимости от спроса пользователей и спонсорства.