Why many programmers don't like GC?
mw
mingwu at gmail.com
Wed Jan 13 21:56:58 UTC 2021
On Wednesday, 13 January 2021 at 18:58:56 UTC, Marcone wrote:
> I've always heard programmers complain about Garbage Collector
> GC. But I never understood why they complain. What's bad about
> GC?
I want to stress: in D you can *MIX* GC with manual memory
management, which gives you the best of both world.
I summarized my experience in one earlier post, (and copy &
pasted below); and I also add the code to jdiutil: Just-Do-It util
https://wiki.dlang.org/Memory_Management#Explicit_Class_Instance_Allocation
https://github.com/mingwugmail/jdiutil/blob/master/source/jdiutil/memory.d
===========================================
https://forum.dlang.org/post/hzryuifoixwwywwifwbz@forum.dlang.org
One of the upside of D I like is that one can mix GC with manual
memory management:
https://dlang.org/library/core/memory/gc.free.html
which gives you the best of both world.
Currently I have a personal project, initially I was solely
relying on GC just like in Java: allocate all the objects via
`new`, and let the GC take care of all the bookkeeping. But there
is a particular set of objects which takes the majority of memory
consumption of the program, and even after I carefully removed
all the reference after the object is no longer used, the program
still use lots of memory because GC collection is un-predictable,
both in terms of timing and efficiency.
Then I decided to do manual core.memory.GC.free just for that
particular objects, (it was not very easy in a multi-threaded
program to make all the logic right, but eventually I got it
done). And the resulting program now only use ~10% of the memory
it used to use.
I think this flexibility to mix GC & manual memory management is
very unique in D. Actually I'm not sure if it can be done in
other languages at all.
===========================================
More information about the Digitalmars-d-learn
mailing list