# Benchmark results

_285 measurements across 95 cells_

## `/articles`

| target | workers | req/sec | p50 (ms) | p99 (ms) | RSS (MB) | req/sec/GB |
|--------|--------:|--------:|---------:|---------:|---------:|-----------:|
| crystal | 1 | 17353 | 3.56 | 4.05 | 26 | 673933 |
| csharp | 1 | 37306 | 1.38 | 5.05 | 127 | 301944 |
| csharp-aot | 1 | 38993 | 1.43 | 4.22 | 73 | 543971 |
| elixir | 1 | 7373 | 7.77 | 19.05 | 119 | 63353 |
| go | 1 | 6335 | 9.61 | 24.54 | 33 | 194017 |
| jruby | 1 | 12282 | 5.07 | 7.49 | 1068 | 11777 |
| kotlin | 1 | 49498 | 1.05 | 4.70 | 544 | 93202 |
| python | 1 | 4947 | 12.89 | 13.15 | 82 | 61706 |
| rails | 1 | 524 | 118.13 | 196.97 | 360 | 1489 |
| rails-int | 1 | 535 | 115.87 | 189.62 | 352 | 1556 |
| rails-jruby | 1 | 996 | 59.84 | 88.19 | 1145 | 891 |
| rails-truffleruby | 1 | 1788 | 31.34 | 63.05 | 1629 | 1124 |
| ruby | 1 | 2952 | 21.50 | 37.28 | 143 | 21099 |
| ruby-int | 1 | 2083 | 30.56 | 42.94 | 129 | 16523 |
| rust | 1 | 55369 | 1.10 | 2.24 | 16 | 3467454 |
| spinel | 1 | 10006 | 6.19 | 10.79 | 77 | 133524 |
| swift | 1 | 14634 | 4.16 | 7.59 | 46 | 326188 |
| truffleruby | 1 | 6649 | 8.73 | 25.47 | 812 | 8389 |
| typescript | 1 | 9939 | 6.26 | 7.53 | 329 | 30918 |

## `/articles/1`

| target | workers | req/sec | p50 (ms) | p99 (ms) | RSS (MB) | req/sec/GB |
|--------|--------:|--------:|---------:|---------:|---------:|-----------:|
| crystal | 1 | 22556 | 2.70 | 3.56 | 24 | 950314 |
| csharp | 1 | 49721 | 1.05 | 4.24 | 128 | 398500 |
| csharp-aot | 1 | 49895 | 1.11 | 3.73 | 76 | 673280 |
| elixir | 1 | 15739 | 3.65 | 12.62 | 124 | 130218 |
| go | 1 | 6443 | 9.47 | 21.74 | 35 | 186597 |
| jruby | 1 | 13500 | 4.59 | 7.05 | 1283 | 10778 |
| kotlin | 1 | 60058 | 0.86 | 3.85 | 665 | 92491 |
| python | 1 | 5552 | 11.52 | 11.60 | 82 | 69176 |
| rails | 1 | 504 | 123.17 | 371.10 | 373 | 1383 |
| rails-int | 1 | 514 | 120.71 | 298.82 | 365 | 1439 |
| rails-jruby | 1 | 927 | 64.32 | 90.47 | 1236 | 768 |
| rails-truffleruby | 1 | 2013 | 28.28 | 48.74 | 1683 | 1224 |
| ruby | 1 | 3046 | 20.90 | 24.01 | 152 | 20582 |
| ruby-int | 1 | 2151 | 29.57 | 43.01 | 129 | 17059 |
| rust | 1 | 72641 | 0.77 | 2.48 | 17 | 4339652 |
| spinel | 1 | 10224 | 6.00 | 11.18 | 74 | 141012 |
| swift | 1 | 17076 | 3.50 | 7.22 | 47 | 371081 |
| truffleruby | 1 | 8823 | 6.79 | 13.28 | 822 | 10997 |
| typescript | 1 | 11222 | 5.56 | 6.90 | 323 | 35617 |

## `/articles/new`

| target | workers | req/sec | p50 (ms) | p99 (ms) | RSS (MB) | req/sec/GB |
|--------|--------:|--------:|---------:|---------:|---------:|-----------:|
| crystal | 1 | 41697 | 1.43 | 2.11 | 22 | 1969503 |
| csharp | 1 | 87949 | 0.48 | 3.62 | 130 | 695400 |
| csharp-aot | 1 | 97337 | 0.47 | 2.47 | 77 | 1291116 |
| elixir | 1 | 43663 | 1.27 | 4.49 | 126 | 354248 |
| go | 1 | 7665 | 4.16 | 71.20 | 35 | 221852 |
| jruby | 1 | 21351 | 2.79 | 5.25 | 1316 | 16618 |
| kotlin | 1 | 124700 | 0.38 | 2.49 | 718 | 177889 |
| python | 1 | 7930 | 8.00 | 8.63 | 82 | 98780 |
| rails | 1 | 729 | 85.47 | 142.16 | 378 | 1974 |
| rails-int | 1 | 742 | 84.00 | 143.90 | 369 | 2060 |
| rails-jruby | 1 | 1478 | 39.26 | 62.64 | 1274 | 1188 |
| rails-truffleruby | 1 | 3861 | 14.86 | 30.89 | 1695 | 2333 |
| ruby | 1 | 4313 | 14.69 | 17.71 | 154 | 28732 |
| ruby-int | 1 | 3037 | 20.92 | 32.60 | 131 | 23738 |
| rust | 1 | 93388 | 0.52 | 1.77 | 18 | 5453582 |
| spinel | 1 | 14079 | 4.23 | 8.59 | 72 | 201038 |
| swift | 1 | 22400 | 2.55 | 6.48 | 48 | 481242 |
| truffleruby | 1 | 17080 | 3.51 | 8.59 | 826 | 21171 |
| typescript | 1 | 22322 | 2.76 | 3.77 | 321 | 71137 |

## `/articles.json`

| target | workers | req/sec | p50 (ms) | p99 (ms) | RSS (MB) | req/sec/GB |
|--------|--------:|--------:|---------:|---------:|---------:|-----------:|
| crystal | 1 | 24407 | 2.50 | 3.39 | 22 | 1154078 |
| csharp | 1 | 49322 | 1.09 | 4.10 | 130 | 388771 |
| csharp-aot | 1 | 48319 | 1.15 | 3.70 | 77 | 644740 |
| elixir | 1 | 19293 | 3.10 | 10.27 | 128 | 154313 |
| go | 1 | 14010 | 4.23 | 11.94 | 37 | 386434 |
| jruby | 1 | 15725 | 3.95 | 6.25 | 1314 | 12255 |
| kotlin | 1 | 56736 | 0.93 | 4.07 | 820 | 70819 |
| python | 1 | 5629 | 11.35 | 11.42 | 82 | 70112 |
| rails | 1 | 909 | 71.11 | 87.47 | 379 | 2458 |
| rails-int | 1 | 926 | 69.45 | 91.58 | 370 | 2565 |
| rails-jruby | 1 | 1533 | 38.41 | 59.89 | 1300 | 1208 |
| rails-truffleruby | 1 | 3398 | 17.08 | 32.05 | 1722 | 2021 |
| ruby | 1 | 3544 | 18.08 | 20.91 | 152 | 23902 |
| ruby-int | 1 | 2525 | 25.35 | 27.82 | 131 | 19807 |
| rust | 1 | 78309 | 0.75 | 1.94 | 18 | 4395777 |
| spinel | 1 | 14761 | 4.20 | 7.52 | 72 | 209387 |
| swift | 1 | 32465 | 1.85 | 3.36 | 48 | 692764 |
| truffleruby | 1 | 7709 | 7.79 | 15.20 | 829 | 9527 |
| typescript | 1 | 11430 | 5.43 | 6.78 | 318 | 36765 |

## `/articles/1.json`

| target | workers | req/sec | p50 (ms) | p99 (ms) | RSS (MB) | req/sec/GB |
|--------|--------:|--------:|---------:|---------:|---------:|-----------:|
| crystal | 1 | 46640 | 1.32 | 1.76 | 22 | 2220984 |
| csharp | 1 | 84809 | 0.54 | 2.80 | 129 | 672212 |
| csharp-aot | 1 | 90601 | 0.53 | 2.50 | 77 | 1205548 |
| elixir | 1 | 29797 | 1.95 | 6.25 | 128 | 239305 |
| go | 1 | 16425 | 2.90 | 25.30 | 37 | 454873 |
| jruby | 1 | 21626 | 2.86 | 5.06 | 1333 | 16614 |
| kotlin | 1 | 94264 | 0.50 | 3.00 | 843 | 114490 |
| python | 1 | 7720 | 8.24 | 9.08 | 82 | 96129 |
| rails | 1 | 1386 | 43.73 | 74.76 | 424 | 3345 |
| rails-int | 1 | 1421 | 42.51 | 74.27 | 420 | 3467 |
| rails-jruby | 1 | 2502 | 22.70 | 39.90 | 1300 | 1972 |
| rails-truffleruby | 1 | 6947 | 8.50 | 18.45 | 1729 | 4114 |
| ruby | 1 | 4213 | 15.32 | 17.71 | 155 | 27887 |
| ruby-int | 1 | 3147 | 20.32 | 22.93 | 133 | 24275 |
| rust | 1 | 139092 | 0.38 | 1.05 | 18 | 7744725 |
| spinel | 1 | 19354 | 3.13 | 7.11 | 70 | 282464 |
| swift | 1 | 40105 | 1.54 | 2.82 | 48 | 846751 |
| truffleruby | 1 | 14891 | 4.09 | 8.68 | 831 | 18349 |
| typescript | 1 | 15809 | 3.86 | 5.22 | 315 | 51405 |

