From 64ac3d6d5968a988380e26fae7998bbde0dc35f0 Mon Sep 17 00:00:00 2001 From: Aaro Altonen Date: Fri, 1 May 2020 19:54:58 +0300 Subject: [PATCH] Add more examples to benchmarks/README.md --- benchmarks/README.md | 87 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 86 insertions(+), 1 deletion(-) diff --git a/benchmarks/README.md b/benchmarks/README.md index c3030b2..5ba8a91 100644 --- a/benchmarks/README.md +++ b/benchmarks/README.md @@ -2,7 +2,46 @@ Send benchmark is the coordinator in the benchmarks so it must be started first. -## Example 3 +## Running the benchmarks + +### Example 1 + +Benchmark uvgRTP's send goodput. Run the benchmark configuration with 8 different thread settings +so first starting with 8 threads, then 7 threads then 6 etc. + +Each thread configuration will test all FPS values between the range 30 - 480 and and each FPS +is tested 20 times. FPS is doubled so the tested values are: 30, 60, 120, 480 + +Each FPS value for each thread configuration provides one log file + +Sender +``` +./benchmark.pl \ + --lib uvgrtp \ + --role send \ + --addr 127.0.0.1 \ + --port 9999 \ + --threads 3 \ + --start 30 \ + --end 480 \ + --iter 20 +``` + +Receiver +``` +./benchmark.pl \ + --lib uvgrtp \ + --role recv \ + --use-nc \ + --addr 127.0.0.1 \ + --port 9999 \ + --threads 3 \ + --start 30 \ + --end 480 \ + --iter 20 +``` + +### Example 2 Benchmark uvgRTP's send goodput using netcat @@ -31,3 +70,49 @@ Receiver --start 30 \ --end 60 \ ``` + +## Parsing the benchmark results + +If the log file matches the pattern `.*(send|recv).*(\d+)threads.*(\d+)fps.*(\d+)iter.*` you don't +have to provide `--role` `--threads` or `--iter` + +### Parsing one output file + +#### Parse one benchmark, generic file name + +``` +./parse.pl \ + --lib ffmpeg \ + --role recv \ + --path log_file \ + --threads 3 + --iter 20 +``` + +#### Parse one benchmark, output file generated by benchmark.pl + +``` +./parse.pl --path results/uvgrtp/send_results_4threads_240fps_10iter +``` + +### Parsing multiple output files + +NB: path must point to a directory! + +NB2: `--iter` needn't be provided if file names follow the pattern defined above + +#### Find best configuration + +Find the best configurations for maximizing single-thread performance and total performance +where frame loss is less than 2% + +``` +./parse.pl --path results/uvgrtp/all --iter 10 --parse=best --frame-loss=2 +``` + +#### Output goodput/frame loss values to a CSV file + + +``` +./parse.pl --path results/uvgrtp/all --parse=csv +```