On 2/23/2015 11:53 PM, Jacob Carlborg wrote:
On 2015-02-23 21:30, Walter Bright wrote:

Count me among those.

In Java, write barriers make sense because Java uses the GC for
everything. Pretty much every indirection is a GC reference.

This is not at all true with D code. But since the compiler can't know
that, it has to insert write barriers for all those dereferences
regardless.

The alternative would be to have two kind of pointers, one for GC allocated data
and one for other kind of data. But I know you don't like that either.

That kinda defeats much of the point to having a GC.


I suspect it would be a terrible performance hit.
It would be nice to have some numbers backing this up.

I've seen enough benchmarks that purport to show that Java is just as fast as C++, as long as only primitive types are being used and not pointers.

I've done enough benchmarks to know that inserting even one extra instruction in a tight loop has significant consequences. If you don't believe that, feel free to try it and see.

D is not going to have competitive performance with systems programming languages if write barriers are added.

Reply via email to