On Sat, 14 Jan 2017 11:52:34 +0000, nbro wrote: > Garbage collection in D is more expensive just because of the poor > implementation, from what I've heard. If that's the case, people who > work on it should be able to improve it over time.
I posted about this in general. A GC for Java, Python, Ruby, etc can locate type information and GC metadata for an allocation in O(1) time. D's can locate type information and GC metadata in O(log N) time in the worst case, even with the best possible implementation, and its design decisions make the worst case incredibly common. That is one of the common operations that a GC does, so it has a big performance impact. D's GC must be slower because it allows pointers to arbitrary places inside an allocation, and it strongly encourages this with array slicing.
