Kotlin web framework comparison: any two, head to head
ktor-tuned is quicker than ktor on 23 of the 31 profiles they both run, and behind on 8. On the HTTP/1.1 composite they score 3899 and 2965.
Pick any two of the 4 Kotlin entries. Requests per second is the best of three runs and the delta is the first column against the second; every row is the same profile at the same connection count, on the same machine. What each profile measures.
| Profile | Conns | ktor-tuned req/sec | ktor req/sec | Delta | ktor-tuned p99 | ktor p99 |
|---|---|---|---|---|---|---|
| Baseline | 4,096 | 1,421,507 | 958,064 | +48% | 10.50ms | 9.25ms |
| Pipelined | 4,096 | 2,519,187 | 2,223,872 | +13% | 86.30ms | 40.50ms |
| Short-lived | 4,096 | 551,081 | 705,889 | -22% | 73.00ms | 53.70ms |
| Async Delay | 32,000 | 326,652 | 207,601 | +57% | 283.80ms | 198.10ms |
| Latency-10K | 1,024 | 9,981 | 9,983 | -0% | 135.0us | 147.0us |
| Latency-1M | 1,024 | 998,014 | 997,500 | +0% | 2777.0us | 13756.0us |
| Latency-500K/8 | 1,024 | 266,303 | 211,429 | +26% | 9539584.0us | 11382784.0us |
| JSON Comp | 4,096 | 248,285 | 204,299 | +22% | 53.00ms | 78.90ms |
| JSON Comp | 16,384 | 216,824 | 205,282 | +6% | 225.80ms | 257.90ms |
| JSON TLS | 4,096 | 824,856 | 456,229 | +81% | 396.45ms | 293.41ms |
| 8Gbit | 512 | 49,240 | 49,330 | -0% | 176.0us | 273.0us |
| Static TLS | 1,024 | 253,462 | 245,059 | +3% | 156.24ms | 95.47ms |
| Async DB | 1,024 | 49,777 | 50,138 | -1% | 24.10ms | 24.10ms |
| Fortunes | 1,024 | 49,991 | 60,733 | -18% | 43.10ms | 30.70ms |
| Baseline | 256 | 1,110,873 | 770,207 | +44% | 154.19ms | 121.76ms |
| Baseline | 1,024 | 1,016,824 | 727,073 | +40% | 380.08ms | 416.32ms |
| Static | 256 | 230,141 | 209,566 | +10% | 126.19ms | 238.51ms |
| Static | 1,024 | 222,669 | 131,179 | +70% | 449.69ms | 833.40ms |
| Baseline (h2c) | 256 | 1,142,982 | 811,874 | +41% | 114.96ms | 123.08ms |
| Baseline (h2c) | 1,024 | 1,079,114 | 726,624 | +49% | 332.67ms | 649.80ms |
| Baseline (h2c) | 4,096 | 507,299 | 509,387 | -0% | 2.07s | 1.81s |
| JSON (h2c) | 1,024 | 704,528 | 431,461 | +63% | 169.29ms | 421.12ms |
| JSON (h2c) | 4,096 | 656,840 | 374,581 | +75% | 664.75ms | 755.42ms |
| Baseline | 64 | 380,700 | 340,607 | +12% | 28.22ms | 28.01ms |
| Static | 64 | 96,694 | 97,362 | -1% | 256.51ms | 266.09ms |
| Echo | 512 | 996,670 | 1,009,467 | -1% | 1.24ms | 1.19ms |
| Echo | 4,096 | 1,128,116 | 968,694 | +16% | 10.30ms | 9.80ms |
| Echo | 16,384 | 861,762 | 621,301 | +39% | 56.60ms | 53.20ms |
| Echo Pipelined | 512 | 11,369,504 | 11,369,170 | +0% | 1.72ms | 2.12ms |
| Echo Pipelined | 4,096 | 12,583,931 | 10,895,483 | +15% | 16.40ms | 14.80ms |
| Echo Pipelined | 16,384 | 11,470,472 | 8,358,151 | +37% | 73.10ms | 67.50ms |
Common comparisons
ktor-tuned vs ktor · ktor-tuned vs http4k · ktor-tuned vs neton · ktor vs http4k · ktor vs neton · http4k vs neton
Questions
Is ktor-tuned faster than ktor?
ktor-tuned is quicker than ktor on 23 of the 31 profiles they both run, and behind on 8. On the HTTP/1.1 composite they score 3899 and 2965. Both run on the same machine, in the same round, against the same profiles.
Is ktor-tuned faster than http4k?
ktor-tuned is quicker than http4k on 10 of the 11 profiles they both run, and behind on 1. On the HTTP/1.1 composite they score 3899 and 1875. Both run on the same machine, in the same round, against the same profiles.
Is ktor-tuned faster than neton?
ktor-tuned is quicker than neton on 19 of the 23 profiles they both run, and behind on 4. On the HTTP/1.1 composite they score 3899 and 2443. Both run on the same machine, in the same round, against the same profiles.
Is ktor faster than http4k?
ktor is quicker than http4k on 11 of the 11 profiles they both run. On the HTTP/1.1 composite they score 2965 and 1875. Both run on the same machine, in the same round, against the same profiles.
Which Kotlin framework is fastest overall?
ktor-tuned holds the highest HTTP/1.1 composite of the Kotlin entries, at 3899. The composite is throughput over the whole suite; if a service is one shape of workload, compare that profile on its own in the table above, because the order changes.
Every Kotlin entry
Results updated · Kotlin composite ranking · Compare across languages · Other languages · Open the leaderboard