HttpArena
Frameworks

h2o

Infrastructure · C

High-performance C HTTP server using libh2o with multi-threaded event loops and native HTTP/2 support. Handlers answer /baseline11, /baseline2, /json/{count} — serialized per request from the dataset parsed at startup — and /static from files preloaded at boot. TLS on :8081 (HTTP/1.1) and :8443 (h2). No HTTP/3: libh2o's QUIC stack is not wired up in this embedded server.

Achievements

🥇 6 Gold · 🥈 4 Silver. Top three of a field, taken in this entry's own league: the family composite, the same composite among entries written in the same language, and each test profile it is scored on. Every field is the one the badges publish, so a medal and a badge always say the same thing. How medals are awarded.

MedalAwardFieldRank
🥇 GoldFamily compositeComposite · HTTP/21 of 4
🥇 GoldWithin its languageC · HTTP/21 of 3
🥇 GoldTest profileConnection · Baseline1 of 5
🥇 GoldTest profileConnection · Pipelined1 of 5
🥇 GoldTest profileConnection · Short-lived1 of 5
🥇 GoldTest profileHTTP/2 · Baseline1 of 4
🥈 SilverFamily compositeComposite · HTTP/1.12 of 5
🥈 SilverWithin its languageC · HTTP/1.12 of 4
🥈 SilverTest profileHTTP/2 · Static2 of 4
🥈 SilverTest profileWorkload · JSON TLS2 of 3

Composite rank

Each profile of a family is worth 100 to the entry that leads it, and the composite is the sum over the family, less 2.5% for each of routing, middleware, request and response the entry does not do for you - its completeness factor, which the WebSocket and gRPC families do not carry. The field is this entry's own league: engines and reverse proxies are scored apart from frameworks. How it works.

FamilyRankComposite
HTTP/1.12 of 53936
HTTP/21 of 41441

Every result

Alpha Round, 8 runs. Requests per second is the best of three; latency, CPU and memory come from that run.

CategoryProfileConnsReq/secAvgp99CPUMemory
ConnectionBaseline4,0963,641,6091.12ms6.67ms6589.8%75MiB
ConnectionPipelined4,0964,938,60313.32ms34.70ms6419.3%69MiB
ConnectionShort-lived4,0962,651,5691.51ms8.38ms6201.2%100MiB
WorkloadJSON TLS4,0961,229,4624.73ms290.08ms6401.5%308MiB
HTTP/2Baseline25616,106,978820us15.81ms3033.0%117MiB
HTTP/2Baseline1,02415,633,0233.19ms87.91ms3087.6%185MiB
HTTP/2Static256363,89823.21ms504.73ms6362.6%154MiB
HTTP/2Static1,024341,25191.41ms1.55s6316.3%279MiB

Compared with

The C entries around h2o on the HTTP/1.1 composite, and the one leading them. The last column shows every profile side by side.

EntryCompositevs h2o
nginx4710+20%head to head
libreactorng3828-3%head to head
libioma3819-3%head to head

Compare h2o with any C entry · Compare h2o with any entry, in any language · Every C entry, ranked

Results updated · How the benchmark is run · The machine · Add or fix an entry