[erlang-questions] Do you wanna play with enif_select?
Fri Dec 2 20:29:54 CET 2016
On 12/02/2016 06:30 PM, Max Lapshin wrote:
>> almost twice the throughput if I remember correctly.
> you mean that new implementation outperforms driver? Driver is calling C
> callback without scheduling to erlang and enif is sending message and it
> takes less CPU cycles?
Well, ports are actually scheduled to execute the C callbacks.
But I don't think that matters in my benchmark runs, because the number
of calls to enif_select and messages sent are tiny compared to
the number of successful read/write calls.
So "twice the throughput" is probably more an effect of NIF call overhead
vs port call overhead plus the efficiency of my toy client NIF code
vs gen_tcp down to inet_drv.c with all their features.
More information about the erlang-questions