- Size of coroutine: 400 bytes
- Each VM requires ~10k physical, 128k virtual memory
- JIT disabled on iOS because Apple doesn't support run time code generation
- JIT disabled on Windows 8 for ARM for the same reason
- LuaJIT interpreter(no JIT) is ~3x faster than standard Lua
- LuaJIT with JIT enabled is ~20x faster than standard Lua
- Lua C API prevents JIT compilation
- LuaJIT FFI is much faster if compiled, but if not compiled(like on iOS), it is slower than the Lua C API
- LuaJIT FFI cannot be safetly sandboxed, do not use for user scripts(Mike Pall recommends process isolation)
- LuaJIT GC considerations by Mike Pall
- 1 to 2GB/ memory limit(depending on OS and x86/64) for current LuaJIT, extended to 2-4GB whenever the new GC arrives , but you wouldn't ever want to allocate that much memory
- All LuaJIT allocations must be within first 2GB of address space
- LuaJIT 3.0 will have a brand new GC, optimized for real time applications
- Tracing compiler discussion with Mike Pall(LuaJIT) and Brenden Eich(Javascript), worth reading the entire thing
- Design of LuaJIT: optimization, register allocation
- Lua 5.2 __gc metamethod not support for tables yet in LuaJIT, can use newproxy, an undocumented Lua function, to work around this
- LuaJIT bytecode 40% smaller than standard Lua
LuaJIT info & links
LuaJIT