lua jit luajit

¿Por qué es tan bueno LuaJIT?



(1)

EDIT: desafortunadamente LuaJIT fue sacado de la comparación en el enlace de abajo.

Esta comparison de lenguajes de programación muestra que LuaJIT tiene una mejora de más de diez veces con respecto a la implementación normal de Lua. ¿Por qué es tan grande el cambio? ¿Hay algo específico sobre Lua que haga que se beneficie mucho de la compilación de JIT? Python también se escribe y compila dinámicamente en bytecode, así que, ¿por qué PyPy (que ahora tiene JIT, creo) muestra un salto tan grande en el rendimiento?


Mike Pall ha hablado de esto en algunos lugares:

Al igual que con cada sistema de rendimiento, la respuesta al final se reduce a dos cosas: algoritmos e ingeniería. LuaJIT utiliza técnicas de compilación avanzadas y también tiene una implementación muy bien diseñada. Por ejemplo, cuando las técnicas de compilación sofisticadas no pueden manejar una pieza de código, LuaJIT recurre a un intérprete muy rápido escrito en el ensamblaje x86.

LuaJIT obtiene puntos dobles en el aspecto de ingeniería, ya que no solo LuaJIT está bien diseñado, sino que el lenguaje Lua tiene un diseño más simple y más coherente que Python y JavaScript. Esto hace que (marginalmente) sea más fácil para una implementación proporcionar un buen rendimiento constante.