HttpArena
Frameworks

proxygen

Engine · C++

Meta's Proxygen HTTP engine: HTTPServer for HTTP/1.1, HTTP/1.1 TLS, h2c, HTTP/2 TLS, and RFC 6455 WebSockets, plus the mvfst-backed HQ server for HTTP/3 over QUIC.

Achievements

🥇 1 Gold · 🥈 1 Silver · 🥉 2 Bronze. 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 languageC++ · WebSocket1 of 3
🥈 SilverWithin its languageC++ · HTTP/1.12 of 3
🥉 BronzeTest profileHTTP/2 · Baseline (h2c)3 of 5
🥉 BronzeTest profileWebSocket · Echo Short-lived3 of 4

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.120 of 231227
HTTP/24 of 71128
HTTP/34 of 5714
WebSocket5 of 91900

Every result

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

CategoryProfileConnsReq/secAvgp99CPUMemory
ConnectionBaseline4,0962,128,1721.70ms3.71ms6681.0%149MiB
ConnectionPipelined4,0961,857,31131.39ms36.80ms6495.4%155MiB
ConnectionShort-lived4,0961,072,8501.50ms10.70ms5561.4%79MiB
WorkloadJSON Comp4,096243,88714.88ms60.50ms6190.8%1.7GiB
WorkloadJSON Comp16,384215,57937.16ms380.40ms6106.2%2.2GiB
WorkloadJSON TLS4,096657,1056.23ms93.70ms6366.4%208MiB
WorkloadStatic TLS1,024587,5891.73ms19.13ms6475.8%193MiB
HTTP/2Baseline2565,845,8444.14ms17.57ms6322.5%110MiB
HTTP/2Baseline1,0245,374,72317.95ms96.05ms6229.6%288MiB
HTTP/2Static256587,14712.14ms71.58ms6286.5%296MiB
HTTP/2Static1,024578,07053.33ms368.02ms5936.8%862MiB
HTTP/2Baseline (h2c)2565,881,8884.18ms14.28ms6428.8%104MiB
HTTP/2Baseline (h2c)1,0245,720,47517.29ms128.75ms6356.6%277MiB
HTTP/2Baseline (h2c)4,0965,326,62771.33ms282.27ms5970.7%915MiB
HTTP/2JSON (h2c)1,0241,082,72429.70ms139.48ms6317.7%351MiB
HTTP/2JSON (h2c)4,0961,033,301113.64ms616.24ms6431.6%1.2GiB
HTTP/3Baseline641,828,3202.76ms6.27ms4421.8%609MiB
HTTP/3Static64305,42816.46ms34.25ms4552.5%386MiB
WebSocketEcho5123,179,995160us295us6489.5%69MiB
WebSocketEcho4,0963,197,0201.11ms2.38ms6483.9%126MiB
WebSocketEcho16,3843,227,6312.00ms4.75ms6096.9%184MiB
WebSocketEcho Pipelined51248,010,665169us308us6686.1%69MiB
WebSocketEcho Pipelined4,09649,666,7231.16ms2.44ms6105.4%127MiB
WebSocketEcho Pipelined16,38447,020,6652.38ms6.46ms5937.8%228MiB
WebSocketEcho Short-lived512981,32878us305us4457.1%70MiB
WebSocketEcho Short-lived4,0961,063,32476us227us4702.2%72MiB

Compared with

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

EntryCompositevs proxygen
drogon4461+264%head to head
hical3352+173%head to head
userver3256+165%head to head
proxygen-coro1073-13%head to head

Compare proxygen with any C++ entry · Compare proxygen with any entry, in any language · Every C++ entry, ranked

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