On 3-Dec-07, at 8:34 AM, Niklas Frykholm wrote:
I am seeing a GC stall of about 8 ms in luaC_separateudata(). After
looking at the code and reading chapter 31 of Programming in Lua, I
think that there simply are too many userdata objects in my lua state.
That's probably not the issue. luaC_separateudata() atomically loops
over all the userdata
objects which are available for garbage collection. So the pause time
reflects the number
of objects being collected, not the number of objects available.
Since you have a lot of objects in your lua univese, the incremental
garbage collector
isn't running often enough, and when it does run you have a large number
of userdata's
to collect. (I'm referring to the total number of objects, not just the
userdatas.)