A very interesting slide deck comparing sync and async IO

Shachar Shemesh via Digitalmars-d digitalmars-d at puremagic.com
Sun Mar 6 05:11:32 PST 2016


On 05/03/16 20:50, Sean Kelly wrote:
> On Friday, 4 March 2016 at 06:55:29 UTC, Shachar Shemesh wrote:
>> On 03/03/16 19:31, Andrei Alexandrescu wrote:
>>> https://www.mailinator.com/tymaPaulMultithreaded.pdf
>>
>> On a completely different note, me and a colleague started a proof of
>> concept to disprove the claim that blocking+threads is slower. We did
>> manage to service several tens of thousands of simultaneous
>> connections using the one thread per client mode, proving that the
>> mere context switch is not the problem here. Sadly, we never got
>> around to bringing the code and the tests up to the level where we can
>> publish something, but, at least in the case where a system call is
>> needed in order to decide when to switch fibers, I dispute the claim
>> that non-blocking is inherently faster.
>
> It's not inherently faster. It just scales better in real-world
> scenarios, assuming a limited number of worker threads. Blocking IO is
> actually often fine in synthetic tests and in server to server, but in
> real world situations where some clients have modem-level bandwidth, a
> blocking write can ruin you.

Not if it's in its own thread, or am I missing something.

Shachar


More information about the Digitalmars-d mailing list