HttpArena
Frameworks

trillium-tuned

Emerging · Rust · engine: trillium-http · tuned configuration

Trillium 1.x with one current_thread tokio runtime per CPU, SO_REUSEPORT TCP sharding (single QUIC endpoint for h3), tuned HttpConfig (larger response/body buffers, 64K h2 frames, eager body preallocation), and static files preloaded into memory at startup. sonic-rs for JSON, deadpool-postgres, mimalloc, trillium-grpc for the benchmark.BenchmarkService gRPC endpoints.

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. The field is this entry's own league: engines and reverse proxies are scored apart from frameworks. How it works.

FamilyRankComposite
HTTP/1.18 of 97700
HTTP/220 of 2946
HTTP/312 of 123
WebSocket27 of 3227

Every result

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

CategoryProfileConnsReq/secAvgp99CPUMemory
ConnectionBaseline512590,554866us2.01ms6211.6%260MiB
ConnectionBaseline4,096618,8016.62ms9.47ms6271.0%368MiB
ConnectionPipelined5122,739,1672.99ms5.17ms6547.8%216MiB
ConnectionPipelined4,0962,818,52323.20ms29.90ms6467.6%319MiB
ConnectionShort-lived512525,211967us4.14ms5721.3%263MiB
ConnectionShort-lived4,096506,8548.07ms21.30ms6138.5%373MiB
WorkloadJSON4,096514,0167.73ms18.10ms6201.1%386MiB
WorkloadJSON Comp5121,474335.37ms675.10ms6410.8%3.7GiB
WorkloadJSON Comp4,0961,4552.02s3.33s6062.7%4.0GiB
WorkloadJSON Comp16,3841,4352.52s4.91s5911.4%4.0GiB
WorkloadJSON TLS4,096581,9687.00ms7.00ms6481.0%477MiB
WorkloadUpload323,00910.60ms47.30ms1538.0%249MiB
WorkloadUpload2563,06977.15ms284.10ms2993.0%275MiB
WorkloadStatic1,0241,397677.29ms677.29ms6406.8%4.0GiB
WorkloadStatic4,0961,393965.03ms965.03ms6372.8%3.9GiB
WorkloadStatic6,8001,394978.70ms978.70ms6288.9%4.0GiB
WorkloadStatic TLS1,024576,6021.77ms15.65ms6426.9%361MiB
WorkloadStatic TLS4,096520,6947.84ms59.44ms6340.1%550MiB
WorkloadStatic TLS6,800523,15513.03ms156.56ms6325.0%749MiB
DatabaseAsync DB1,024285,3223.13ms28.00ms3624.5%292MiB
DatabaseCRUD4,096510,8907.95ms28.40ms3841.1%393MiB
Multi-endpointAPI-425660,7183.29ms19.70ms373.3%74MiB
Multi-endpointAPI-161,024173,7614.98ms45.40ms1530.9%154MiB
HTTP/2Baseline2562,192,42013.00ms13.00ms6198.4%945MiB
HTTP/2Baseline1,0241,969,56649.72ms49.72ms6384.8%4.8GiB
HTTP/2Static256---1486.4%5.1GiB
HTTP/2Static1,024---2590.0%5.0GiB
HTTP/3Baseline64120,82826.53ms111.36ms98.6%224MiB
HTTP/3Static64522.97s4.31s99.9%304MiB
WebSocketEcho5121,696,025301us652us6636.4%362MiB
WebSocketEcho4,096418,2039.78ms12.80ms6312.7%938MiB
WebSocketEcho16,384399,87340.19ms45.60ms6295.9%2.7GiB
WebSocketEcho Pipelined5124,758,0551.72ms3.29ms6397.1%377MiB
WebSocketEcho Pipelined4,0964,661,73913.98ms19.10ms6392.3%908MiB
WebSocketEcho Pipelined16,3844,226,63060.68ms71.60ms6334.8%2.7GiB

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