[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: Re: Garbage Collection bottleneck
- From: roberto@... (Roberto Ierusalimschy)
- Date: Wed, 21 Jun 2006 15:29:02 -0300
> As you can see, I am creating a temporary global variable _tmp to hold the
> value of the expression. I understand that the code for dostring will do
> some temp allocations as well. The eventual collection of these things
> takes so much time that the frame rate suffers (there is a noticable pause
> every 1 to 4 seconds).
dostring will not "do some temp allocations as well". dostring is a HEAVY
function. You should always try to avoid calling dostring inside a loop.
> I know that I could avoid the use of _tmp when getting the value of an
> actual global variable (like in the case LuaGetBool(L,
> "gSomeGlobalBoolean")) by using lua_getglobal(), but there must a better
> way to generically get the value of an expression (as well as members of
> tables) ?
If you have a fixed set of expressions that you want to get the value,
you could (pre) create a Lua function to return each expression and then
only call the respective function when you need the value.