On Tuesday, 13 September 2016 at 15:27:23 UTC, John Colvin wrote:
For the following, lifetimeEnd(x) is the time of freeing of x.

Given a reference graph and an const/immutable node n, all nodes reachable via n (let's call them Q(n)) must also be const/immutable, as per the rules of D's type system.

In order to avoid dangling pointers:
For all q in Q(n), lifetimeEnd(q) >= lifetimeEnd(n)

Therefore, there is never any need for the GC to mark or sweep anything in Q(n) during the lifetime of n.

Does the GC take advantage of this in some way to reduce collection times?

I am pretty sure it does not.

Reply via email to