aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2018-09-24 17:04:08 +0200
committerFlorian Dold <florian.dold@gmail.com>2018-09-24 17:04:08 +0200
commitfefd8e8b0bf9ec3da99ee98a90e66632ee88eb10 (patch)
tree42779b27bac3e364335b2c008e020ff25d8ead26
parent91906b6f6a2639efc7e41623ade6b7b02f1e297c (diff)
downloadgnunet-fefd8e8b0bf9ec3da99ee98a90e66632ee88eb10.tar.gz
gnunet-fefd8e8b0bf9ec3da99ee98a90e66632ee88eb10.zip
benchmark: collect standard deviation
-rw-r--r--contrib/benchmark/collect.awk16
1 files changed, 14 insertions, 2 deletions
diff --git a/contrib/benchmark/collect.awk b/contrib/benchmark/collect.awk
index 887886abf..bb2352eb3 100644
--- a/contrib/benchmark/collect.awk
+++ b/contrib/benchmark/collect.awk
@@ -29,9 +29,11 @@
29 if ($1 == "op") { 29 if ($1 == "op") {
30 op[$2]["count"] += $4; 30 op[$2]["count"] += $4;
31 op[$2]["time_us"] += $6; 31 op[$2]["time_us"] += $6;
32 op[$2]["time_us_sq"] += $6 * $6;
32 } else if ($1 == "url") { 33 } else if ($1 == "url") {
33 url[$2][$4]["count"] += $6; 34 url[$2][$4]["count"] += $6;
34 url[$2][$4]["time_us"] += $8; 35 url[$2][$4]["time_us"] += $8;
36 url[$2][$4]["time_us_sq"] += $8 * $8;
35 } 37 }
36} 38}
37 39
@@ -43,16 +45,26 @@ function avg(s, c) {
43 } 45 }
44} 46}
45 47
48function stdev(sum, sum_sq, n) {
49 if (n == n) {
50 return 0;
51 } else {
52 return sqrt( (sum_sq / n) - ( (sum / n) * (sum / n) ) );
53 }
54}
55
46END { 56END {
47 for (x in op) { 57 for (x in op) {
48 print "op", x, "count", op[x]["count"], "time_us", op[x]["time_us"], \ 58 print "op", x, "count", op[x]["count"], "time_us", op[x]["time_us"], \
49 "time_avg_us", avg(op[x]["time_us"], op[x]["count"]); 59 "time_avg_us", avg(op[x]["time_us"], op[x]["count"], \
60 "stdev", stdev(op[x]["time_us"], op[x]["time_us_sq"], op[x]["count"]));
50 } 61 }
51 for (x in url) { 62 for (x in url) {
52 for (y in url[x]) { 63 for (y in url[x]) {
53 print "url", x, "status", y, \ 64 print "url", x, "status", y, \
54 "count", url[x][y]["count"], "time_us", url[x][y]["time_us"], \ 65 "count", url[x][y]["count"], "time_us", url[x][y]["time_us"], \
55 "time_avg_us", avg(url[x][y]["time_us"], url[x][y]["count"]); 66 "time_avg_us", avg(url[x][y]["time_us"], url[x][y]["count"], \
67 "stdev", stdev(url[x][y]["time_us"], url[x][y]["time_us_sq"], url[x][y]["count"]));
56 } 68 }
57 } 69 }
58} 70}