[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: Re: Update on GC performance (github version)
- From: Dibyendu Majumdar <mobile@...>
- Date: Tue, 28 Nov 2017 20:23:19 +0000
On 28 November 2017 at 12:32, Roberto Ierusalimschy
> In Lua 5.4, an object becomes old when it survives two GC cycles.
> So, even if an object is created just before a collection, it still
> must last a full GC cycle before becoming old. When the program is
> creating only short-lived objects, it can go forever without a full
> collection. However, this implementation is much more complex.
> As an example, consider that object A was created in cycle 1,
> B in cycle 2, and A points to B. Both are young, so everything
> is fine. Now, in the next collection, A becomes old, but B does not,
> so A(old) points to B(young). The collector must know about that.
> Similarly, if A(old) receives a reference to B(young), the collector
> puts A in a list to be traversed again. In 5.2, this list can
> be cleared at each collection (as all objects become old). In 5.3,
> the object A might be kept in this list for another cycle, because B can
> survive a collection and still be young. (The real details,
> both in 5.2 and 5.3, are more complex than that, but they are
> reasonably more complex in 5.3 than in 5.2.)
Is the 5.3.4 GC implementation as available on github now stable? I
was wondering if you plan to issue a 'work' release? I would like to
start merging the GC implementation into Ravi but am worried that it
may be under flux.
Thanks and Regards