Setting, yes.
If you mean {table1, table2, ...} then the key, albeit implicit, is present, numeric, increasing, hole-free and starting with 1. If that's the case, then yes, it still applies. But then the contained tables themselves are also potentially eligible for reuse, as they are subject to the same potential problem of allocation/reallocation.
If you mean {[table1]=value, [table2]=value, ...} I haven't tested that, but the pairs()/next() needed to iterate over the elements are compilation blockers so it can potentially be much slower.
The gist of it is that using certain functions slow things down significantly, notably including pairs, next, select with non-constant first argument, unpack, and others, as well as certain operations notably including creating functions and concatenating strings (the last one isn't true if you're in LJ 2.1).Jaston wrote: ↑Tue Jan 29, 2019 5:17 am Those links had me lost. They use functions way beyond what I understand from lua. All can grasp is that this gets to the root functions of what the compiler and JIT does quick vs. interprets. And one could leverage these very specific techniques to ensure the unoptimized functions are avoided.