On 02/18/2016 02:00 PM, Witek wrote:
> So, the question is, why is D / DMD allocator so slow under heavy
> multithreading? The working set is pretty small (few megabytes at most),
> so I do not think this is an issue with GC scanning itself.  Can I
> plug-in tcmalloc / jemalloc, to be used as the underlying allocator,
> instead of using glibc? Or is D runtime using mmap/srbk/etc directly?

DMD/druntime use stop-the-world GC implementation. That means every time
anything needs to be allocated there is possibility of collection cycle
which will pause execution of all threads. It doesn't matter if there is
much garbage - the very pause is the problem.

Using allocations not controlled by GC (even plain malloc) should change
situation notably.

Reply via email to