diff options
author | Florian Dold <florian.dold@gmail.com> | 2018-09-24 17:04:08 +0200 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2018-09-24 17:04:08 +0200 |
commit | fefd8e8b0bf9ec3da99ee98a90e66632ee88eb10 (patch) | |
tree | 42779b27bac3e364335b2c008e020ff25d8ead26 /contrib/benchmark | |
parent | 91906b6f6a2639efc7e41623ade6b7b02f1e297c (diff) | |
download | gnunet-fefd8e8b0bf9ec3da99ee98a90e66632ee88eb10.tar.gz gnunet-fefd8e8b0bf9ec3da99ee98a90e66632ee88eb10.zip |
benchmark: collect standard deviation
Diffstat (limited to 'contrib/benchmark')
-rw-r--r-- | contrib/benchmark/collect.awk | 16 |
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 | ||
48 | function 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 | |||
46 | END { | 56 | END { |
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 | } |