Lets talk about fibers
via Digitalmars-d
digitalmars-d at puremagic.com
Fri Jun 5 04:29:49 PDT 2015
On Thursday, 4 June 2015 at 22:28:52 UTC, Jonathan M Davis wrote:
> anyone give a reason why we need to. deadalnix talked about
> load balancing that way, but you gave good reasons as to why
> that didn't make sense,
What good reasons?
By the time you get response from your shared memcache or
database the x86 cache level 1 and possibly 2 is cold. And cache
level 3 is shared, so there is no cache penalty for switching
cores. Add to this that two-and-two cores share primary caches so
if you don't pair tasks that address the same memory you loose up
to 10-20% performance in addition to unused capacity and
increased latency. Smart scheduling matters, both at the OS level
and at the application level. That's not a controversial
statement (only in these forums…)!
The only good reason for not switching is that you lack
resources/know-how. But then you probably should not make it a
language feature in the first place...?
There is no reason to pretend that synthetic performance
benchmarks don't carry weight when people pick a language for
production. That's just wishful thinking.
More information about the Digitalmars-d
mailing list