HttpArena
Frameworks

ktor

Flagship · Kotlin · engine: netty · standard configuration · completeness 4/4

JetBrains Ktor 3.x on Netty with Kotlin coroutines, kotlinx.serialization, JDK 21.

Achievements

🥇 1 Gold. 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 languageKotlin · HTTP/1.11 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.127 of 712590
HTTP/212 of 18448
WebSocket10 of 15454

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,096822,0624.97ms9.82ms6154.9%9.5GiB
ConnectionPipelined4,096584,867110.57ms138.90ms4725.5%17.9GiB
ConnectionShort-lived4,096665,6916.12ms49.70ms6284.1%4.4GiB
ConcurrencyAsync Delay32,000244,271129.22ms201.10ms2499.4%16.7GiB
EfficiencyLatency-10K1,0249,980139.0us188.0us94.2%465MiB
EfficiencyLatency-1M1,024878,8221588616.7us2642944.0us6001.8%5.0GiB
EfficiencyLatency-500K/81,024197,3836062251.0us11939840.0us727.0%1.3GiB
WorkloadJSON Comp4,096193,02021.17ms82.30ms6158.4%5.2GiB
WorkloadJSON Comp16,384189,51184.68ms260.80ms6028.2%11.2GiB
WorkloadJSON TLS4,096391,97811.92ms11.92ms4946.9%9.3GiB
Workload8Gbit51249,202211.7us320.0us750.0%2.7GiB
WorkloadStatic TLS1,024204,7098.18ms245.95ms6407.0%3.8GiB
DatabaseAsync DB1,024103,9519.45ms13.60ms4993.8%9.6GiB
DatabaseFortunes1,02451,03019.15ms41.20ms5349.4%7.5GiB
HTTP/2Baseline256558,48544.86ms44.86ms5918.6%29.8GiB
HTTP/2Baseline1,024541,980184.02ms184.02ms5904.2%30.0GiB
HTTP/2Static256189,73741.76ms41.76ms6023.8%16.0GiB
HTTP/2Static1,024180,206173.56ms173.56ms5728.0%24.7GiB
HTTP/2Baseline (h2c)256412,24567.92ms67.92ms5465.5%30.7GiB
HTTP/2Baseline (h2c)1,024402,964210.39ms210.39ms5790.3%31.1GiB
HTTP/2Baseline (h2c)4,096279,9911.37s1.37s5175.2%31.2GiB
HTTP/2JSON (h2c)1,024314,284101.21ms101.21ms4441.9%28.2GiB
HTTP/2JSON (h2c)4,096282,755426.56ms426.56ms4531.9%29.9GiB
WebSocketEcho5121,021,279500us1.13ms3426.5%2.5GiB
WebSocketEcho4,096980,0194.15ms8.98ms3411.2%6.6GiB
WebSocketEcho16,384645,40024.58ms42.30ms3396.7%14.8GiB
WebSocketEcho Pipelined51211,215,557729us2.13ms3370.7%10.8GiB
WebSocketEcho Pipelined4,09610,647,6346.12ms15.10ms3385.1%13.0GiB
WebSocketEcho Pipelined16,3848,879,79028.61ms61.10ms3418.8%20.7GiB

Compared with

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

EntryCompositevs ktor
ktor-ghost2835+9%head to head
http4k1901-27%head to head
neton1339-48%head to head

Compare ktor with any Kotlin entry · Compare ktor with any entry, in any language · Every Kotlin entry, ranked

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