HttpArena
Frameworks

armeria

Flagship · Java · engine: Netty · standard configuration · completeness 4/4

Armeria 1.43 on Netty's epoll transport. Services registered on ServerBuilder, compression through EncodingService (brotli4j), static files through FileService with precompressed variants, gRPC through armeria-grpc, WebSocket through WebSocketService, TLS through BoringSSL (netty-tcnative).

Achievements

🥇 1 Gold · 🥈 1 Silver · 🥉 1 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
🥇 GoldTest profileEfficiency · Latency-10K1 of 84
🥈 SilverWithin its languageJava · WebSocket2 of 3
🥉 BronzeWithin its languageJava · HTTP/23 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.135 of 843064
HTTP/211 of 30962
gRPC7 of 9549
WebSocket16 of 291082

Every result

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

CategoryProfileConnsReq/secAvgp99CPUMemory
ConnectionBaseline4,096947,3324.29ms16.20ms6402.5%3.6GiB
ConnectionPipelined4,0961,894,54234.36ms104.60ms6225.4%4.8GiB
ConnectionShort-lived4,096518,4847.82ms82.40ms5034.7%3.2GiB
ConcurrencyAsync Delay32,0001,089,92228.92ms84.10ms6258.8%6.4GiB
EfficiencyLatency-10K1,0249,983104.2us151.0us61.0%512MiB
EfficiencyLatency-1M1,024984,199126025.7us1022208.0us6518.8%2.8GiB
EfficiencyLatency-500K/81,024153,2446905079.8us13750272.0us789.3%924MiB
WorkloadJSON Comp4,096232,67817.59ms109.70ms5944.7%4.0GiB
WorkloadJSON Comp16,384230,66369.76ms236.70ms6139.7%4.9GiB
WorkloadJSON TLS4,096483,95810.64ms185.91ms6355.1%4.3GiB
Workload8Gbit51249,364148.4us236.0us446.8%1.1GiB
WorkloadStatic TLS1,02457,58319.53ms105.07ms864.4%1.2GiB
HTTP/2Baseline2561,806,52713.05ms95.79ms6581.6%6.4GiB
HTTP/2Baseline1,0241,794,73351.95ms291.23ms6545.9%6.4GiB
HTTP/2Static25647,247167.47ms694.21ms776.7%1.3GiB
HTTP/2Static1,02443,775650.60ms2.91s745.7%3.3GiB
HTTP/2Baseline (h2c)2562,819,6628.93ms148.09ms6308.9%7.3GiB
HTTP/2Baseline (h2c)1,0242,662,56936.68ms179.29ms6364.4%7.5GiB
HTTP/2Baseline (h2c)4,0962,638,313142.60ms550.67ms6183.4%8.5GiB
HTTP/2JSON (h2c)1,0241,124,60228.45ms170.67ms6201.0%6.6GiB
HTTP/2JSON (h2c)4,0961,087,293113.85ms508.80ms6153.8%7.7GiB
gRPCUnary2561,797,11713.97ms108.37ms6714.6%9.1GiB
gRPCUnary1,0241,763,28054.91ms210.68ms6649.0%12.9GiB
gRPCUnary TLS2561,644,85014.93ms131.61ms6532.6%7.9GiB
gRPCUnary TLS1,0241,597,10057.97ms219.57ms6500.1%12.8GiB
WebSocketEcho5123,041,041167us3.18ms6528.3%991MiB
WebSocketEcho4,0963,174,0711.29ms7.21ms6410.0%2.3GiB
WebSocketEcho16,3842,641,1076.01ms16.40ms6159.6%2.3GiB
WebSocketEcho Pipelined5124,634,3941.76ms9.80ms6493.1%955MiB
WebSocketEcho Pipelined4,0964,773,55513.51ms33.90ms6351.6%2.2GiB
WebSocketEcho Pipelined16,3844,586,26452.71ms114.90ms6535.7%2.3GiB
WebSocketEcho Short-lived512599,75152us123us3083.5%2.2GiB
WebSocketEcho Short-lived4,096624,99452us126us3000.5%2.7GiB

Compared with

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

EntryCompositevs armeria
aegon-java5621+83%head to head
helidon-production3972+30%head to head
quarkus-jvm3502+14%head to head
jooby2262-26%head to head
spring-boot1680-45%head to head

Compare armeria with any Java entry · Compare armeria with any entry, in any language · Every Java entry, ranked

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