I thought it interesting that UrWeb is in the top 5, which is a whole web system from scratch, more or less with a very small community. I have no idea what this tests though.
Most other servers in the benchmark use event based libraries like libuv, libevent, etc. I think it’s interesting to see how far you can get using good “old fashioned” threads and architecture that was more popular in the late 90s/early 2000s.
Yeah it’s certainly odd or at least such a different approach from the other frameworks. They are running basically code in http.c which has this comment:
qprintf("Starting the Ur/Web native HTTP server, which is intended for use\n"
"ONLY DURING DEVELOPMENT. You probably want to use one of the other backends,\n"
"behind a production-quality HTTP server, for a real deployment.\n\n");
I’d like to run the benchmark locally, but no time yet.
I thought it interesting that UrWeb is in the top 5, which is a whole web system from scratch, more or less with a very small community. I have no idea what this tests though.
It appears that the core of UrWeb uses good old blocking I/o and is heavily pthreaded.
https://github.com/urweb/urweb/tree/master/src/c
Most other servers in the benchmark use event based libraries like libuv, libevent, etc. I think it’s interesting to see how far you can get using good “old fashioned” threads and architecture that was more popular in the late 90s/early 2000s.
I think it depends on what it’s doing. I’m not really sure the actual requests that are happening for this test.
Yeah it’s certainly odd or at least such a different approach from the other frameworks. They are running basically code in http.c which has this comment:
I’d like to run the benchmark locally, but no time yet.
They should use a log scale. Otherwise the difference at the top of the chart is perceptively too big.