1. 6
  1.  

  2. 2

    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.

    1. 2

      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.

      1. 1

        I think it depends on what it’s doing. I’m not really sure the actual requests that are happening for this test.

        1. 1

          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.

    2. 1

      They should use a log scale. Otherwise the difference at the top of the chart is perceptively too big.