diff --git a/README.md b/README.md index 006c7343..28933aed 100644 --- a/README.md +++ b/README.md @@ -51,32 +51,32 @@ Get started with the benchmarks: | Query | Server | Requests/sec | Latency (ms) | Relative | |-------:|--------:|--------------:|--------------:|---------:| | 1 | `{ posts { id userId title user { id name email }}}` | -|| [Tailcall] | `29,922.20` | `3.33` | `112.12x` | -|| [async-graphql] | `1,867.29` | `54.01` | `7.00x` | -|| [Caliban] | `1,568.68` | `63.70` | `5.88x` | -|| [Hasura] | `1,493.31` | `66.79` | `5.60x` | -|| [GraphQL JIT] | `1,338.18` | `74.42` | `5.01x` | -|| [Gqlgen] | `770.57` | `128.83` | `2.89x` | -|| [Netflix DGS] | `356.89` | `246.24` | `1.34x` | -|| [Apollo GraphQL] | `266.88` | `367.39` | `1.00x` | +|| [Tailcall] | `29,865.00` | `3.34` | `112.98x` | +|| [async-graphql] | `1,824.45` | `54.68` | `6.90x` | +|| [Caliban] | `1,631.74` | `60.96` | `6.17x` | +|| [Hasura] | `1,513.32` | `65.92` | `5.72x` | +|| [GraphQL JIT] | `1,308.30` | `76.09` | `4.95x` | +|| [Gqlgen] | `771.42` | `128.66` | `2.92x` | +|| [Netflix DGS] | `360.56` | `174.79` | `1.36x` | +|| [Apollo GraphQL] | `264.34` | `370.65` | `1.00x` | | 2 | `{ posts { title }}` | -|| [Tailcall] | `62,054.00` | `1.60` | `45.17x` | -|| [async-graphql] | `9,456.44` | `10.70` | `6.88x` | -|| [Caliban] | `9,318.68` | `11.08` | `6.78x` | -|| [Hasura] | `2,447.49` | `40.84` | `1.78x` | -|| [Gqlgen] | `2,167.07` | `47.82` | `1.58x` | -|| [Apollo GraphQL] | `1,745.49` | `57.21` | `1.27x` | -|| [Netflix DGS] | `1,601.17` | `68.94` | `1.17x` | -|| [GraphQL JIT] | `1,373.75` | `72.69` | `1.00x` | +|| [Tailcall] | `61,611.40` | `1.61` | `45.11x` | +|| [Caliban] | `9,406.21` | `10.99` | `6.89x` | +|| [async-graphql] | `9,366.90` | `10.76` | `6.86x` | +|| [Hasura] | `2,450.62` | `40.79` | `1.79x` | +|| [Gqlgen] | `2,150.47` | `48.08` | `1.57x` | +|| [Apollo GraphQL] | `1,745.86` | `57.22` | `1.28x` | +|| [Netflix DGS] | `1,602.77` | `69.19` | `1.17x` | +|| [GraphQL JIT] | `1,365.94` | `73.10` | `1.00x` | | 3 | `{ greet }` | -|| [Caliban] | `68,335.30` | `1.05` | `27.05x` | -|| [Tailcall] | `64,385.60` | `1.56` | `25.49x` | -|| [async-graphql] | `51,682.70` | `1.98` | `20.46x` | -|| [Gqlgen] | `47,207.70` | `5.07` | `18.69x` | -|| [Netflix DGS] | `8,248.13` | `14.56` | `3.26x` | -|| [Apollo GraphQL] | `7,931.10` | `12.95` | `3.14x` | -|| [GraphQL JIT] | `5,176.81` | `19.29` | `2.05x` | -|| [Hasura] | `2,526.31` | `39.52` | `1.00x` | +|| [Caliban] | `69,058.50` | `1.06` | `27.21x` | +|| [Tailcall] | `63,879.10` | `1.58` | `25.17x` | +|| [async-graphql] | `50,746.10` | `2.10` | `20.00x` | +|| [Gqlgen] | `46,935.70` | `5.11` | `18.50x` | +|| [Netflix DGS] | `8,233.67` | `14.43` | `3.24x` | +|| [Apollo GraphQL] | `8,028.37` | `12.66` | `3.16x` | +|| [GraphQL JIT] | `5,097.42` | `19.59` | `2.01x` | +|| [Hasura] | `2,537.66` | `39.39` | `1.00x` | diff --git a/assets/latency_histogram1.png b/assets/latency_histogram1.png index 1916c798..4f17234c 100644 Binary files a/assets/latency_histogram1.png and b/assets/latency_histogram1.png differ diff --git a/assets/latency_histogram2.png b/assets/latency_histogram2.png index 73336bbd..ea759626 100644 Binary files a/assets/latency_histogram2.png and b/assets/latency_histogram2.png differ diff --git a/assets/latency_histogram3.png b/assets/latency_histogram3.png index 1d7c58a4..139d1a49 100644 Binary files a/assets/latency_histogram3.png and b/assets/latency_histogram3.png differ diff --git a/assets/req_sec_histogram1.png b/assets/req_sec_histogram1.png index 4c03ade3..2f14f59c 100644 Binary files a/assets/req_sec_histogram1.png and b/assets/req_sec_histogram1.png differ diff --git a/assets/req_sec_histogram2.png b/assets/req_sec_histogram2.png index 2ff81a2c..8ae5c33e 100644 Binary files a/assets/req_sec_histogram2.png and b/assets/req_sec_histogram2.png differ diff --git a/assets/req_sec_histogram3.png b/assets/req_sec_histogram3.png index d8276bad..d0ddf870 100644 Binary files a/assets/req_sec_histogram3.png and b/assets/req_sec_histogram3.png differ diff --git a/results.md b/results.md index 3abe0892..c7f343c1 100644 --- a/results.md +++ b/results.md @@ -3,31 +3,31 @@ | Query | Server | Requests/sec | Latency (ms) | Relative | |-------:|--------:|--------------:|--------------:|---------:| | 1 | `{ posts { id userId title user { id name email }}}` | -|| [Tailcall] | `29,922.20` | `3.33` | `112.12x` | -|| [async-graphql] | `1,867.29` | `54.01` | `7.00x` | -|| [Caliban] | `1,568.68` | `63.70` | `5.88x` | -|| [Hasura] | `1,493.31` | `66.79` | `5.60x` | -|| [GraphQL JIT] | `1,338.18` | `74.42` | `5.01x` | -|| [Gqlgen] | `770.57` | `128.83` | `2.89x` | -|| [Netflix DGS] | `356.89` | `246.24` | `1.34x` | -|| [Apollo GraphQL] | `266.88` | `367.39` | `1.00x` | +|| [Tailcall] | `29,865.00` | `3.34` | `112.98x` | +|| [async-graphql] | `1,824.45` | `54.68` | `6.90x` | +|| [Caliban] | `1,631.74` | `60.96` | `6.17x` | +|| [Hasura] | `1,513.32` | `65.92` | `5.72x` | +|| [GraphQL JIT] | `1,308.30` | `76.09` | `4.95x` | +|| [Gqlgen] | `771.42` | `128.66` | `2.92x` | +|| [Netflix DGS] | `360.56` | `174.79` | `1.36x` | +|| [Apollo GraphQL] | `264.34` | `370.65` | `1.00x` | | 2 | `{ posts { title }}` | -|| [Tailcall] | `62,054.00` | `1.60` | `45.17x` | -|| [async-graphql] | `9,456.44` | `10.70` | `6.88x` | -|| [Caliban] | `9,318.68` | `11.08` | `6.78x` | -|| [Hasura] | `2,447.49` | `40.84` | `1.78x` | -|| [Gqlgen] | `2,167.07` | `47.82` | `1.58x` | -|| [Apollo GraphQL] | `1,745.49` | `57.21` | `1.27x` | -|| [Netflix DGS] | `1,601.17` | `68.94` | `1.17x` | -|| [GraphQL JIT] | `1,373.75` | `72.69` | `1.00x` | +|| [Tailcall] | `61,611.40` | `1.61` | `45.11x` | +|| [Caliban] | `9,406.21` | `10.99` | `6.89x` | +|| [async-graphql] | `9,366.90` | `10.76` | `6.86x` | +|| [Hasura] | `2,450.62` | `40.79` | `1.79x` | +|| [Gqlgen] | `2,150.47` | `48.08` | `1.57x` | +|| [Apollo GraphQL] | `1,745.86` | `57.22` | `1.28x` | +|| [Netflix DGS] | `1,602.77` | `69.19` | `1.17x` | +|| [GraphQL JIT] | `1,365.94` | `73.10` | `1.00x` | | 3 | `{ greet }` | -|| [Caliban] | `68,335.30` | `1.05` | `27.05x` | -|| [Tailcall] | `64,385.60` | `1.56` | `25.49x` | -|| [async-graphql] | `51,682.70` | `1.98` | `20.46x` | -|| [Gqlgen] | `47,207.70` | `5.07` | `18.69x` | -|| [Netflix DGS] | `8,248.13` | `14.56` | `3.26x` | -|| [Apollo GraphQL] | `7,931.10` | `12.95` | `3.14x` | -|| [GraphQL JIT] | `5,176.81` | `19.29` | `2.05x` | -|| [Hasura] | `2,526.31` | `39.52` | `1.00x` | +|| [Caliban] | `69,058.50` | `1.06` | `27.21x` | +|| [Tailcall] | `63,879.10` | `1.58` | `25.17x` | +|| [async-graphql] | `50,746.10` | `2.10` | `20.00x` | +|| [Gqlgen] | `46,935.70` | `5.11` | `18.50x` | +|| [Netflix DGS] | `8,233.67` | `14.43` | `3.24x` | +|| [Apollo GraphQL] | `8,028.37` | `12.66` | `3.16x` | +|| [GraphQL JIT] | `5,097.42` | `19.59` | `2.01x` | +|| [Hasura] | `2,537.66` | `39.39` | `1.00x` |