&spall Messed with auto-tracing LuaJIT this evening, getting back into Spall after a bit of a hiatus.
local samples = 1000000 local T = {} local CachedTable = {"abc", "def", "ghk"} local function test1(times) T[times] = CachedTable end do for warm = 1, samples do test1(warm) end end
Interesting to note, for simple bench tests, the more loop iterations you have, the longer the JIT seems to take to kick in.
for 100,000 iterations it takes >1ms to move to JITted code
for 1,000,000, it's 8ms
and for 10,000,000 it's ~60ms
The actual asm-gen part of LuaJIT is incredibly zippy. ~50-100us here
(the spiky part)