Why many programmers don't like GC?
welkam
wwwelkam at gmail.com
Fri Jan 15 14:24:40 UTC 2021
On Friday, 15 January 2021 at 11:28:55 UTC, Ola Fosheim Grøstad
wrote:
> On Friday, 15 January 2021 at 11:11:14 UTC, Mike Parker wrote:
>> That's the whole point of being able to mix and match. Anyone
>> avoiding the GC completely is missing it (unless they really,
>> really, must be GC-less).
>
> Has DMD switched to using the GC as the default?
No. And it will never will. Currently DMD uses custom allocator
for almost everything. It works as follows. Allocate a big
chunk(1MB) of memory using malloc. Have a internal pointer that
points to the beginning of unallocated memory. When someone ask
for memory return that pointer and increment internal pointer
with the 16 byte aligned size of allocation. Meaning the new
pointer is pointing to unused memory and everything behind the
pointer has been allocated. This simple allocation strategy is
called bump the pointer and it improved DMD performance by ~70%.
You can use GC with D compiler by passing -lowmem flag. I didnt
measure but I heard it can increase compilation time by 3x.
https://github.com/dlang/dmd/blob/master/src/dmd/root/rmem.d#L153
More information about the Digitalmars-d-learn
mailing list