From e069b983e7c1610b8ecdfb77b75fbe17b8c4c401 Mon Sep 17 00:00:00 2001
From: dominicriordan
Date: Thu, 27 Apr 2023 14:20:57 +0100
Subject: [PATCH] update benchmarks
---
README.md | 22 +++++++++++++++++++++-
1 file changed, 21 insertions(+), 1 deletion(-)
diff --git a/README.md b/README.md
index ea021d0..a531024 100644
--- a/README.md
+++ b/README.md
@@ -4,7 +4,8 @@
-Gopayloader is a HTTP/S benchmarking tool. Inspired by bombardier it also uses [fasthttp](https://github.com/valyala/fasthttp) which allows for fast creation and sending of requests due to low allocations and lots of other improvements.
+Gopayloader is a HTTP/S benchmarking tool. Inspired by [bombardier](https://github.com/codesenberg/bombardier/) it also uses [fasthttp](https://github.com/valyala/fasthttp) which allows for fast creation and sending of requests due to low allocations and lots of other improvements. But with
+added improvement of also supporting fashttp for HTTP/2.
It uses this client by default, a different client can be used with `--client` flag.
Supports all HTTP versions, using [quic-go](https://github.com/quic-go/quic-go) for HTTP/3 client with `--client nethttp-3`. For HTTP/2 can use fasthttp with `--client fasthttp-2` or standard core golang `net/http` with `--client nethttp`
@@ -195,4 +196,23 @@ To remove all generated jwts;
## Benchmark comparisons
+All tests are running against below HTTP/1.1 server;
+```shell
+./gopayloader http-server -p 8081 -s 1 --fasthttp-1
+```
+
+Tested running for `30 seconds` reqs over `125` connections
+
+Gopayloader tested with
+```shell
+./gopayloader run http://localhost:8081 -c 125 --time 30s
+```
+
+achieved mean RPS of `53098.428`
+
+| Tool | Cmd | Mean RPS | Gopayloader improvewment
+|----------------------------------------------------------|-----------------------------------------|----------|---------------------------------------|
+| [k6](https://github.com/grafana/k6) | `k6 run --vus 125 --duration 30s k6.js` | 15268 | 235% |
+| [bombardier](https://github.com/codesenberg/bombardier/) | `bombardier http://localhost:8081 -c 125 --duration=30s` | 51311 | 3.4% |
+| [hey](https://github.com/rakyll/hey) | `hey -z 30s -c 125 http://localhost:8081` | 22644 | 134% |