DCT: D compiler as a collection of libraries

Roman D. Boiko rb at d-coding.com
Sat May 12 14:08:44 PDT 2012


On Saturday, 12 May 2012 at 20:28:34 UTC, Tobias Pankrath wrote:
>> 1. If a struct is a field of heap allocated object, it will be
>> allocated and garbage collected. Only if it only exists on 
>> stack
>> (i.e., in method body), GC is not used.
>
> As far as I can tell, it won't be allocated on it's own, since 
> it is stored in the garbage collected object as a value field. 
> So using a freelist would actually increase the overhead. You 
> have to manage the freelist and do the allocation of the 
> containing object.
Sorry for confusion. In the first point I was trying to clarify 
that using a struct doesn't mean that it is stack allocated, but 
that statement was off-topic for the given context. Currently I 
consider my first point to be useless, and the second one is not 
relevant in *my* context, since I don't do many allocations of 
Location, as well as in a majority of other contexts. As it is 
often the case, performance optimization should be performed only 
when benchmarks show it is needed.



More information about the Digitalmars-d-announce mailing list