lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]

Brian Weed wrote:
We are using Lua 5.02 in our game engine, and although we had no problems on previous projects, the garbage collection now seems to be a bottleneck (noticable pause in the main loop when the GC executes).

The problem stems from my creation of some temporary global variables inside each tick of the main loop.

Although it seems that the incremental GC of Lua v5.1 would probably solve this problem, upgrading is a last resort...I am looking for solutions that don't involve upgrading.
You could look into luarc, a reference counted version of Lua. It doesn't have the 5.0.3 fixes in it, but I do believe it is current to 5.0.2 (although a failing memory never helps). Its webpage is at You want the build out of Subversion.

The reference counting seems stable and there is really no performance comparison between the standard mark-sweep collector (which still exists in luarc to handle table cycles) and the reference counting's ability to destroy objects immediately. The reference counting Lua has shipped a number of Xbox and Xbox 360 console titles, although they've only shipped through LuaPlus (which is where the reference counting was born). I believe all LuaPlus reference counting changes are merged into luarc.