HttpArena
Frameworks

hirundo

Engine · Clojure · engine: helidon-nima

Minimal Hirundo engine benchmark pinned to the upstream Helidon/Nima Ring adapter with HTTP/1.1, TLS, HTTP/2, H2c, and WebSocket support.

Achievements

🥇 2 Gold · 🥈 1 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
🥇 GoldWithin its languageClojure · HTTP/21 of 5
🥇 GoldWithin its languageClojure · WebSocket1 of 7
🥈 SilverTest profileWorkload · 8Gbit2 of 16

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.126 of 341268
HTTP/28 of 12293
WebSocket10 of 161032

Every result

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

CategoryProfileConnsReq/secAvgp99CPUMemory
ConnectionBaseline4,09690,18541.49ms44.40ms925.2%1.8GiB
ConnectionPipelined4,0963,247,4481.45ms1.45ms6103.6%13.4GiB
ConnectionShort-lived4,096100,70237.39ms43.90ms1138.0%3.3GiB
ConcurrencyAsync Delay32,000230,051121.13ms196.80ms4967.1%5.6GiB
EfficiencyLatency-10K1,0249,982106.1us142.0us69.4%960MiB
EfficiencyLatency-1M1,02424,7079736020.0us19292160.0us276.0%959MiB
EfficiencyLatency-500K/81,02424,7729484121.8us18784256.0us151.9%749MiB
WorkloadJSON Comp4,09649,99456.09ms1.95s6234.5%5.1GiB
WorkloadJSON Comp16,38448,92475.86ms2.57s6277.0%5.2GiB
WorkloadJSON TLS4,09684,70445.81ms885.83ms6397.2%14.8GiB
Workload8Gbit51249,374165.6us1825.0us566.8%2.0GiB
WorkloadStatic TLS1,024105,96973.37ms944.32ms6242.0%13.8GiB
HTTP/2Baseline2561,391,96117.94ms106.30ms6267.8%14.2GiB
HTTP/2Baseline1,0241,449,11865.78ms542.62ms6142.2%16.2GiB
HTTP/2Static25690,54781.35ms1.81s6383.3%14.0GiB
HTTP/2Static1,02493,007276.61ms4.95s6363.0%21.4GiB
HTTP/2Baseline (h2c)2562,071,26112.17ms91.62ms6245.4%13.7GiB
HTTP/2Baseline (h2c)1,0242,080,89847.57ms238.93ms6316.9%20.7GiB
HTTP/2Baseline (h2c)4,0961,918,694185.38ms1.08s5990.8%27.7GiB
HTTP/2JSON (h2c)1,02489,663335.81ms1.57s6254.0%14.4GiB
HTTP/2JSON (h2c)4,09685,9601.10s4.30s6358.0%15.2GiB
WebSocketEcho5122,507,295203us327us6716.4%1.9GiB
WebSocketEcho4,0962,286,3561.55ms2.16ms6500.8%1.4GiB
WebSocketEcho16,3842,137,8102.34ms3.75ms6575.9%3.7GiB
WebSocketEcho Pipelined51215,350,259533us1.14ms6320.7%4.7GiB
WebSocketEcho Pipelined4,09615,268,6233.86ms7.33ms6183.1%5.0GiB
WebSocketEcho Pipelined16,38414,816,3758.43ms21.20ms5991.4%6.2GiB
WebSocketEcho Short-lived512653,152120us342us4593.0%4.9GiB
WebSocketEcho Short-lived4,096635,526120us340us4589.0%4.9GiB

Compared with

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

EntryCompositevs hirundo
ring-http-exchange3649+188%head to head
ring-jetty-adapter1614+27%head to head
aleph1402+11%head to head
pedestal1146-10%head to head
http-kit839-34%head to head

Compare hirundo with any Clojure entry · Compare hirundo with any entry, in any language · Every Clojure entry, ranked

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