Am 23.04.2017 um 16:48 schrieb Jacob Carlborg:

On 2017-04-23 13:53, Sönke Ludwig wrote:

It almost looks like it never scales beyond a single core for some
reason.

I've seen similar behaviors when I was running performance tests on a
small vibe.d application last year. It had the same performance
regardless if it was running single or multi-threaded.

BTW, how does vibe.d's multi-threading functionality works? Does it
spread the fibers across multiple threads or does it use multiple event
loops?

It starts one loop per thread and lets the OS distribute incoming
connections across threads (using SO_REUSEPORT). However, usually the
better method is to actually start up one process per CPU core, as that
avoids issues like the GC lock bringing everything to a crawl.