How to use D without the GC ?

Dukc ajieskola at gmail.com
Thu Jun 13 07:18:48 UTC 2024


Lance Bachmeier kirjoitti 13.6.2024 klo 1.32:
> 
> Why would it be different from calling malloc and free manually? I guess 
> I'm not understanding, because you put the same calls to malloc and free 
> that you'd otherwise be doing inside this and ~this.

Because with `SafeRefCounted`, you have to decide the size of your 
allocations at compile time, meaning you need to do a varying number of 
`malloc`s and `free`s to vary the size of your allocation at runtime. 
Even if you were to use templates to vary the type of `SafeRefCounted` 
object based on size of your allocation, the spec puts an upper bound of 
16MiB to size of a static array.

So for example, if you have a program that sometimes needs 600Mib and 
sometimes needs 1100MiB, you can in any case allocate all that in one go 
with one `malloc` or one `new`, but you'll need at least 38/59 
`SafeRefCounted` static arrays, and therefore `malloc`s, to accomplish 
the same.


More information about the Digitalmars-d-learn mailing list