Hi all, I've just pushed the updated results.

Test suite modifications:

* added runner command to list available tests
* possibility to switch off keepalive connections - causes `hey` to make a new connection for each request * added parameter to run each test multiple times and choose the best result out of the runs

Tests additions:

* 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 * same RAW tests but in Dlang too - both in betterC, epoll is basically the same, io_uring differs in that it uses my during[1] library - so we can see if there are some performance problems (as it should perform basically the same as C variant)

Some insights:

I've found the test results from hey[2] pretty inconsistent (run locally or over the network). That's the reason I've added the `bestof` switch to the runner. And the current test results are the best of 10 runs for each of them.

Some results are a bit surprising, ie that even with 10 runs there are tests that are faster than C/dlang raw tests - as they should be at the top because they really don't do anything with HTTP handling.. And eventcore/fibers to beat raw C epoll loop with fibers overhead? It just seems odd..

I'll probably add wrk[3] load generator too to see a difference with a longer running tests.

[1] https://github.com/tchaloupka/during
[2] https://github.com/rakyll/hey
[3] https://github.com/wg/wrk

Reply via email to