From d3b7c89b05a4b887b508c5781c0f3e6c3980720a Mon Sep 17 00:00:00 2001 From: DomySh Date: Sun, 26 Jun 2022 20:06:40 +0200 Subject: [PATCH] Fix benchmark graph --- docs/FiregexBenchmark.png | Bin 30005 -> 50348 bytes tests/README.md | 9 ++++++++- 2 files changed, 8 insertions(+), 1 deletion(-) mode change 100644 => 100755 docs/FiregexBenchmark.png diff --git a/docs/FiregexBenchmark.png b/docs/FiregexBenchmark.png old mode 100644 new mode 100755 index 062d808c5ec3f1aa13cdace4e85f105f587a7d76..c6a44553159c9aa689868b21acf840a56e632e70 GIT binary patch literal 50348 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 diff --git a/tests/README.md b/tests/README.md index 06e8cfa..e850ce0 100644 --- a/tests/README.md +++ b/tests/README.md @@ -54,5 +54,12 @@ It uses iperf3 to benchmark the throughput in MB/s of the server, both with prox You will find a new benchmark.csv file containg the results. # Firegex Performance Results -The test was performed on AMD Ryzen 7 3700X (16 thread) @ 3.600GHz, RAM Speed: 3200 MT/s (Dual Channel), kernel: 5.18.5-arch1-1 + +The test was performed on: +- AMD Ryzen 7 3700X (16 thread) @ 3.600GHz +- RAM Speed: 3200 MT/s (Dual Channel) +- Kernel: 5.18.5-arch1-1 + +Command: `python3 benchmark.py -r 100 -d 1 -s 50` + ![Firegex Benchmark](/docs/FiregexBenchmark.png)