D future ...

Walter Bright via Digitalmars-d digitalmars-d at puremagic.com
Wed Dec 21 23:30:20 PST 2016


On 12/21/2016 3:36 AM, thedeemon wrote:
> Bad news: without complete redesign of the language and turning into one more
> C++/CLI (where you have different kinds of pointers in the language for GC and
> non-GC), having C performance and Go-style low-pause GC is not really possible.
> You have to choose one. Go chose GC with short pauses but paid with slow speed
> overall and slow C interop. D chose C-level performance but paid for it with a
> slow GC.

The trouble with a better GC is it usually entails changing the code generator 
to emit a "write gate" that goes along with assignments via a pointer. This 
write gate signals the GC that a particular block is being written to, so that 
block can be marked as "dirty". (Paging virtual memory systems do this 
automatically.)

What this implies is better GC performance comes at a cost of worse performance 
of the non-GC code. This strategy is effective for a language that makes very 
heavy use of the GC (like Java does), but for a language like D that uses the GC 
lightly, it's a much more elusive benefit.


More information about the Digitalmars-d mailing list