On Sunday, 27 September 2020 at 10:08:24 UTC, tchaloupka wrote:
* new RAW tests in C to utilize epoll and io_uring (using
liburing) event loops - so we have some ground base we can
compare against
I fixed some buffering issues in cgi.d and, if you have the right
concurrency level that happens to align with the number of worker
processes... I'm getting incredible results. 65k rps.
It *might* just beat the raw there. The kernel does a really good
job.
Of course, it still will make other connections wait forever...
but my new event loop in threads mode is now also giving me a
pretty solid 26k rps on random concurrency levels with the
buffering fix.
I just need to finish testing this to get some confidence before
I push live but here it is on a github branch if you're curious
to look:
https://github.com/adamdruppe/arsd/blob/cgi_preview/cgi.d
Compile with `-version=embedded_httpd_threads
-version=cgi_use_fiber` to opt into the new event loop. But the
buffering improvements should register in all usage modes.