Thought on limiting scope of GC

Paulo Pinto pjmlp at progtools.org
Fri Feb 14 07:20:06 PST 2014


On Friday, 14 February 2014 at 09:01:09 UTC, tcak wrote:
> 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.

This only works when you are the only guy on the team and have a 
small codebase to visualize on your head.

The moment a middle size team comes into play, it is chaos.

There is a reason why manual memory managed languages have lost 
their place on the enterprise.

--
Paulo


More information about the Digitalmars-d mailing list