[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: GC stall in luaC_separateudata
- From: Niklas Frykholm <niklas@...>
- Date: Mon, 03 Dec 2007 14:34:05 +0100
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.
I have about 130 000 userdata objects. The reason for that insane ammout
is that I am simulating a big world and many of the C/C++ objects are
mirrored on the Lua side as userdata.
My plan now is to reduce the number of "mirrored" objects by rewriting
the structures so that Lua doesn't keep a live reference to everything
on the C side, but instead just fetches the references it needs to work
on from C and then releases them.
Since this might be a significant rewrite I just thought I should ask
first if anyone else has encountered this problem or has any other ideas
on how to address it.