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