OSNews article about C++09 degenerates into C++ vs. D discussion
    Sean Kelly 
    sean at f4.ca
       
    Sun Nov 19 20:34:01 PST 2006
    
    
  
Kyle Furlong wrote:
> Bill Baxter wrote:
>> Julio César Carrascal Urquijo wrote:
>>> Mars wrote:
>>>> http://www.osnews.com/comment.php?news_id=16526
>>>
>>> This is one thing that bothers me with the current GC. If you store 
>>> data with a lot of entropy in an array (Sound, encrypted data, sensor 
>>> data, etc...) you start to experience memory leaks because the GC 
>>> starts to see the data as references to other objects.
>>
>> This is the kind of comment that scares me.
>> How does one reconcile this with Walter's comment "The GC has been 
>> pretty heavily tested. It's 6 years old, and it's stood up extremely 
>> well."
>>   --(digitalmars.com digitalmars.D:43916)
> 
> The problem is that if the data isn't typed, the GC cannot say 
> absolutely that the data is not pointers into the GC allocated space.
See my other post.  So long as the user doesn't try to pack pointers 
into a byte array or something similar, simply using element size can 
rule out a significant portion of GCed memory.  At the very least, char 
strings would be ignored.
> Now in the case of arrays, I think that probably the current collector 
> is being far too conservative. Since each array is typed, with the 
> exception of void[], the GC should differentiate between, for example, a 
> byte[] and a Class[] or void*[] and treat them appropriately.
The type isn't currently available in the compiler runtime or GC code, 
but element size is.  Passing in a TypeInfo object for allocations may 
be a bit more specific, but I'm not sure the additional complexity would 
be worthwhile.  I suppose it depends on the application.
Sean
    
    
More information about the Digitalmars-d
mailing list