Executor types
Типы исполнителей фрагмнетов¶
Каждый фрагмент может поддерживать несколько типов исполнителей (задается в метаданных фрагмента):
- LuaC (референсная реализация интерпретатора Lua 5.3)
- LuaJit (высокопроизводительный трассирующий jit-компилятор Lua)
- LuaJ (JVM-реализация Lua 5.1)
- VmLuaJ (aналогично LuaJ, но запуск производится внутри процесса Runtime node)
- CPython (референсная реализация интерпретатора Python 3.6)
InVm-исполнители (VmLuaJ) не могут исполнять недоверенные фрагменты (не прошедшие стадию PTS-верификации), т.к. запускаются без какой-либо изоляции и возможности экстренной остановки.
Характеристики производительности Lua-исполнителей:¶
Задержка запуска фрагмента, по возрастанию:
- интерпретация в контексте JVM (LuaJ, disabled jit)
- jit-based исполнение в контексте JVM (LuaJ, enabled jit)
- интерпретация вне контеска JVM (LuaC)
- jit-based исполнение вне контекста JVM (LuaJit)
Пропускная способность, по возрастанию:
- (LuaJ, disabled jit) / LuaC. Требует замеров (предположительно, разница не существенна)
- (LuaJ, enabled jit)
- LuaJit