jerro:

I don't think I've ever actually used it (other than just trying it). When I use classes, I usually want them to be heap allocated.

I think to make a difference for the GC (and to improve locality for the cache, and reduce the fan out discussed in the blog post), a good percentage (50%? 70%?) of the class instances need to be allocated in-place.

I say "in-place", because a fixed-sized array is allocated in place inside a class instance, even if the instance is allocated on the heap.

------------------------

deadalnix:

It is unsafe :D But otherwise works properly.

In this thread there are some notes:
http://d.puremagic.com/issues/show_bug.cgi?id=5115

Maybe some language support is needed to improve the situation. And this stuff can't want D3. Taking a good look at the design of Rust language is an option.


LDC also plan to provide a pass that remove many allocation when it can prove that thing don't escape scope. I don't know if that went into the lastest version, last time I heard of it it was experimental.

Escape analysis helps, but it's not a good enough solution. This is said in that blog post too.

Bye,
bearophile

Reply via email to