From 7b62b2fd0e8942a8bed39b42d1f9196081a1566e Mon Sep 17 00:00:00 2001 From: Author Date: Wed, 1 May 2024 13:08:35 +0000 Subject: [PATCH] Update performance results in README.md --- README.md | 12 ++++++------ assets/latency_histogram.png | Bin 23172 -> 23106 bytes assets/req_sec_histogram.png | Bin 21262 -> 21231 bytes results.md | 12 ++++++------ 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index ae3d45df..cdfdf215 100644 --- a/README.md +++ b/README.md @@ -48,12 +48,12 @@ Get started with the benchmarks: | Server | Requests/sec | Latency (ms) | |--------:|--------------:|--------------:| -| [Caliban] | `8,758.74` | `11.43` | -| [Tailcall] | `8,556.91` | `11.68` | -| [async-graphql] | `7,526.23` | `13.29` | -| [Gqlgen] | `2,244.85` | `46.07` | -| [Apollo GraphQL] | `1,876.31` | `53.16` | -| [Netflix DGS] | `1,377.26` | `76.52` | +| [Tailcall] | `8,521.83` | `11.70` | +| [Caliban] | `8,253.38` | `12.22` | +| [async-graphql] | `7,482.22` | `13.37` | +| [Gqlgen] | `2,208.95` | `46.74` | +| [Apollo GraphQL] | `1,826.79` | `54.52` | +| [Netflix DGS] | `1,376.52` | `76.65` | diff --git a/assets/latency_histogram.png b/assets/latency_histogram.png index 15e76d2d9f9b1b53ece40279fbf09b8574278d1e..861897b6a939f9ab5086c77290ec8b3ca8f753e0 100644 GIT binary patch literal 23106 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 literal 23172 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 D^^e9Y diff --git a/assets/req_sec_histogram.png b/assets/req_sec_histogram.png index d1dbc83cb161a10a88921a507cd3a0cda418dc0e..67d3bc8dbbd38355554a2639eaf837a5ff2321b0 100644 GIT binary patch literal 21231 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 JNphEN{V%PkNm2j+ literal 21262 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 diff --git a/results.md b/results.md index f4f4f9ca..e784ae83 100644 --- a/results.md +++ b/results.md @@ -2,11 +2,11 @@ | Server | Requests/sec | Latency (ms) | |--------:|--------------:|--------------:| -| [Caliban] | `8,758.74` | `11.43` | -| [Tailcall] | `8,556.91` | `11.68` | -| [async-graphql] | `7,526.23` | `13.29` | -| [Gqlgen] | `2,244.85` | `46.07` | -| [Apollo GraphQL] | `1,876.31` | `53.16` | -| [Netflix DGS] | `1,377.26` | `76.52` | +| [Tailcall] | `8,521.83` | `11.70` | +| [Caliban] | `8,253.38` | `12.22` | +| [async-graphql] | `7,482.22` | `13.37` | +| [Gqlgen] | `2,208.95` | `46.74` | +| [Apollo GraphQL] | `1,826.79` | `54.52` | +| [Netflix DGS] | `1,376.52` | `76.65` |