diff --git a/README.md b/README.md index b86b4aec..998aac57 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,267.60` | `3.40` | `267.10x` | -|| [async-graphql] | `1,740.18` | `57.69` | `15.88x` | -|| [Caliban] | `1,569.42` | `63.36` | `14.32x` | -|| [GraphQL JIT] | `1,336.41` | `74.51` | `12.20x` | -|| [Gqlgen] | `747.49` | `132.68` | `6.82x` | -|| [Netflix DGS] | `352.99` | `194.51` | `3.22x` | -|| [Apollo GraphQL] | `266.96` | `368.47` | `2.44x` | -|| [Hasura] | `109.58` | `549.59` | `1.00x` | +|| [Tailcall] | `28,320.00` | `3.52` | `175.34x` | +|| [async-graphql] | `1,784.61` | `57.51` | `11.05x` | +|| [Caliban] | `1,523.52` | `65.29` | `9.43x` | +|| [GraphQL JIT] | `1,311.50` | `75.93` | `8.12x` | +|| [Gqlgen] | `744.41` | `133.27` | `4.61x` | +|| [Netflix DGS] | `354.53` | `192.91` | `2.20x` | +|| [Apollo GraphQL] | `264.73` | `370.46` | `1.64x` | +|| [Hasura] | `161.51` | `496.54` | `1.00x` | | 2 | `{ posts { title }}` | -|| [Tailcall] | `58,892.60` | `1.69` | `67.80x` | -|| [Caliban] | `9,095.25` | `11.36` | `10.47x` | -|| [async-graphql] | `9,013.56` | `11.22` | `10.38x` | -|| [Gqlgen] | `2,150.46` | `48.27` | `2.48x` | -|| [Apollo GraphQL] | `1,790.51` | `55.78` | `2.06x` | -|| [Netflix DGS] | `1,577.33` | `70.02` | `1.82x` | -|| [GraphQL JIT] | `1,355.90` | `73.65` | `1.56x` | -|| [Hasura] | `868.64` | `114.88` | `1.00x` | +|| [Tailcall] | `58,223.00` | `1.71` | `68.82x` | +|| [Caliban] | `9,102.02` | `11.33` | `10.76x` | +|| [async-graphql] | `9,042.00` | `11.20` | `10.69x` | +|| [Gqlgen] | `2,136.74` | `48.34` | `2.53x` | +|| [Apollo GraphQL] | `1,742.58` | `57.30` | `2.06x` | +|| [Netflix DGS] | `1,584.25` | `69.49` | `1.87x` | +|| [GraphQL JIT] | `1,337.30` | `74.68` | `1.58x` | +|| [Hasura] | `845.98` | `117.95` | `1.00x` | | 3 | `{ greet }` | -|| [Caliban] | `67,030.40` | `1.08` | `25.98x` | -|| [Tailcall] | `58,359.30` | `1.73` | `22.61x` | -|| [async-graphql] | `47,894.60` | `2.12` | `18.56x` | -|| [Gqlgen] | `47,153.70` | `5.18` | `18.27x` | -|| [Netflix DGS] | `8,188.33` | `15.04` | `3.17x` | -|| [Apollo GraphQL] | `8,021.30` | `12.65` | `3.11x` | -|| [GraphQL JIT] | `5,168.90` | `19.32` | `2.00x` | -|| [Hasura] | `2,580.56` | `38.79` | `1.00x` | +|| [Caliban] | `66,940.20` | `1.09` | `26.59x` | +|| [Tailcall] | `59,316.40` | `1.70` | `23.56x` | +|| [async-graphql] | `47,630.90` | `2.14` | `18.92x` | +|| [Gqlgen] | `46,908.30` | `5.23` | `18.63x` | +|| [Netflix DGS] | `8,151.83` | `15.19` | `3.24x` | +|| [Apollo GraphQL] | `7,931.63` | `12.75` | `3.15x` | +|| [GraphQL JIT] | `5,147.67` | `19.40` | `2.04x` | +|| [Hasura] | `2,517.36` | `39.64` | `1.00x` | diff --git a/assets/latency_histogram1.png b/assets/latency_histogram1.png index 027197d4..114166ef 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 975a8be0..016104ed 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 bd5b4411..686c860f 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 a6e161fe..fbc5a27d 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 f4f6b831..fa8e4ae7 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 ed84ffcb..2b1502cc 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 dc6582c8..23b72c8a 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,267.60` | `3.40` | `267.10x` | -|| [async-graphql] | `1,740.18` | `57.69` | `15.88x` | -|| [Caliban] | `1,569.42` | `63.36` | `14.32x` | -|| [GraphQL JIT] | `1,336.41` | `74.51` | `12.20x` | -|| [Gqlgen] | `747.49` | `132.68` | `6.82x` | -|| [Netflix DGS] | `352.99` | `194.51` | `3.22x` | -|| [Apollo GraphQL] | `266.96` | `368.47` | `2.44x` | -|| [Hasura] | `109.58` | `549.59` | `1.00x` | +|| [Tailcall] | `28,320.00` | `3.52` | `175.34x` | +|| [async-graphql] | `1,784.61` | `57.51` | `11.05x` | +|| [Caliban] | `1,523.52` | `65.29` | `9.43x` | +|| [GraphQL JIT] | `1,311.50` | `75.93` | `8.12x` | +|| [Gqlgen] | `744.41` | `133.27` | `4.61x` | +|| [Netflix DGS] | `354.53` | `192.91` | `2.20x` | +|| [Apollo GraphQL] | `264.73` | `370.46` | `1.64x` | +|| [Hasura] | `161.51` | `496.54` | `1.00x` | | 2 | `{ posts { title }}` | -|| [Tailcall] | `58,892.60` | `1.69` | `67.80x` | -|| [Caliban] | `9,095.25` | `11.36` | `10.47x` | -|| [async-graphql] | `9,013.56` | `11.22` | `10.38x` | -|| [Gqlgen] | `2,150.46` | `48.27` | `2.48x` | -|| [Apollo GraphQL] | `1,790.51` | `55.78` | `2.06x` | -|| [Netflix DGS] | `1,577.33` | `70.02` | `1.82x` | -|| [GraphQL JIT] | `1,355.90` | `73.65` | `1.56x` | -|| [Hasura] | `868.64` | `114.88` | `1.00x` | +|| [Tailcall] | `58,223.00` | `1.71` | `68.82x` | +|| [Caliban] | `9,102.02` | `11.33` | `10.76x` | +|| [async-graphql] | `9,042.00` | `11.20` | `10.69x` | +|| [Gqlgen] | `2,136.74` | `48.34` | `2.53x` | +|| [Apollo GraphQL] | `1,742.58` | `57.30` | `2.06x` | +|| [Netflix DGS] | `1,584.25` | `69.49` | `1.87x` | +|| [GraphQL JIT] | `1,337.30` | `74.68` | `1.58x` | +|| [Hasura] | `845.98` | `117.95` | `1.00x` | | 3 | `{ greet }` | -|| [Caliban] | `67,030.40` | `1.08` | `25.98x` | -|| [Tailcall] | `58,359.30` | `1.73` | `22.61x` | -|| [async-graphql] | `47,894.60` | `2.12` | `18.56x` | -|| [Gqlgen] | `47,153.70` | `5.18` | `18.27x` | -|| [Netflix DGS] | `8,188.33` | `15.04` | `3.17x` | -|| [Apollo GraphQL] | `8,021.30` | `12.65` | `3.11x` | -|| [GraphQL JIT] | `5,168.90` | `19.32` | `2.00x` | -|| [Hasura] | `2,580.56` | `38.79` | `1.00x` | +|| [Caliban] | `66,940.20` | `1.09` | `26.59x` | +|| [Tailcall] | `59,316.40` | `1.70` | `23.56x` | +|| [async-graphql] | `47,630.90` | `2.14` | `18.92x` | +|| [Gqlgen] | `46,908.30` | `5.23` | `18.63x` | +|| [Netflix DGS] | `8,151.83` | `15.19` | `3.24x` | +|| [Apollo GraphQL] | `7,931.63` | `12.75` | `3.15x` | +|| [GraphQL JIT] | `5,147.67` | `19.40` | `2.04x` | +|| [Hasura] | `2,517.36` | `39.64` | `1.00x` |