Thought on limiting scope of GC

tcak tcak at pcak.com
Fri Feb 14 01:01:08 PST 2014


On Friday, 14 February 2014 at 04:41:43 UTC, Jerry wrote:
> Hi all,
>
> I just had the following thought on limiting the gc in regions.
>  I don't
> know if this would address some of Manu's concerns, but here 
> goes:
>
> My thought is to have something like the following:
>
> GC.track();
> auto obj = allocateStuff();
> GC.cleanup(obj);
>
> The idea here is that track() tells GC to explicitly track all 
> objects
> created from that point until the cleanup call.  The cleanup() 
> call
> tells gc to limit its collection to those objects allocated 
> since the
> track() call.  The obj parameter tells gc to consider obj live.
>
> This way, you can avoid tracking everything that may get 
> created, but
> you can limit how much work gets done.
>
> Comments? Slams?
>
> Jerry

A programmer's aim is to tell computer what to do. Purpose of GC 
is to help him to prevent problems. In default, AFAIK, GC 
considers every part of memory in case there are references in 
them. Well, if the time taking process is scanning all memory, 
programmer could tell to GC, if he/she trusts about correctness, 
not to scan some parts of memory to limit scanning area. Example, 
if I create a char array of 10,000 items, why would I want GC to 
scan it. I won't put any object references in it for sure.


More information about the Digitalmars-d mailing list