From 91906b6f6a2639efc7e41623ade6b7b02f1e297c Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Mon, 24 Sep 2018 16:35:09 +0200 Subject: consolidate benchmark collection scripts --- contrib/benchmark/collect.awk | 58 ++++++++++++++++++++++++++++++++++++++ contrib/benchmark/collect_ops.awk | 45 ----------------------------- contrib/benchmark/collect_urls.awk | 47 ------------------------------ 3 files changed, 58 insertions(+), 92 deletions(-) create mode 100644 contrib/benchmark/collect.awk delete mode 100644 contrib/benchmark/collect_ops.awk delete mode 100644 contrib/benchmark/collect_urls.awk (limited to 'contrib') diff --git a/contrib/benchmark/collect.awk b/contrib/benchmark/collect.awk new file mode 100644 index 000000000..887886abf --- /dev/null +++ b/contrib/benchmark/collect.awk @@ -0,0 +1,58 @@ +# This file is part of GNUnet +# Copyright (C) 2018 GNUnet e.V. +# +# GNUnet is free software: you can redistribute it and/or modify it +# under the terms of the GNU Affero General Public License as published +# by the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# GNUnet is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + + +# Aggregate benchmarking data from multiple threads/processes +# generated by util/benchmark.c. +# +# Can be used as +# awk -f collect.awk gnunet-benchmark-{ops,urls}-*.txt + + +# records are of the following forms: +# op count time_us +# url status count time_us +{ + if ($1 == "op") { + op[$2]["count"] += $4; + op[$2]["time_us"] += $6; + } else if ($1 == "url") { + url[$2][$4]["count"] += $6; + url[$2][$4]["time_us"] += $8; + } +} + +function avg(s, c) { + if (c == 0) { + return 0; + } else { + return s / c; + } +} + +END { + for (x in op) { + print "op", x, "count", op[x]["count"], "time_us", op[x]["time_us"], \ + "time_avg_us", avg(op[x]["time_us"], op[x]["count"]); + } + for (x in url) { + for (y in url[x]) { + print "url", x, "status", y, \ + "count", url[x][y]["count"], "time_us", url[x][y]["time_us"], \ + "time_avg_us", avg(url[x][y]["time_us"], url[x][y]["count"]); + } + } +} diff --git a/contrib/benchmark/collect_ops.awk b/contrib/benchmark/collect_ops.awk deleted file mode 100644 index b34fcc723..000000000 --- a/contrib/benchmark/collect_ops.awk +++ /dev/null @@ -1,45 +0,0 @@ -# This file is part of GNUnet -# Copyright (C) 2018 GNUnet e.V. -# -# GNUnet is free software: you can redistribute it and/or modify it -# under the terms of the GNU Affero General Public License as published -# by the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# GNUnet is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . - - -# Aggregate benchmarking data from multiple threads/processes -# generated by util/benchmark.c. -# -# Can be used as -# awk -f collect_ops.awk gnunet-benchmark-ops-*.txt - - -# records are of the following form: -# op count time_us -{ - op[$2]["count"] += $4; - op[$2]["time_us"] += $6; -} - -function avg(s, c) { - if (c == 0) { - return 0; - } else { - return s / c; - } -} - -END { - for (x in op) { - print "op", x, "count", op[x]["count"], "time_us", op[x]["time_us"], \ - "time_avg_us", avg(op[x]["time_us"], op[x]["count"]); - } -} diff --git a/contrib/benchmark/collect_urls.awk b/contrib/benchmark/collect_urls.awk deleted file mode 100644 index 27424b2b8..000000000 --- a/contrib/benchmark/collect_urls.awk +++ /dev/null @@ -1,47 +0,0 @@ -# records are of the following form: -# This file is part of GNUnet -# Copyright (C) 2018 GNUnet e.V. -# -# GNUnet is free software: you can redistribute it and/or modify it -# under the terms of the GNU Affero General Public License as published -# by the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# GNUnet is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . - - -# Aggregate benchmarking data from multiple threads/processes -# generated by util/benchmark.c. -# -# Can be used as -# awk -f collect_ops.awk gnunet-benchmark-ops-*.txt -# url status count time_us - -{ - url[$2][$4]["count"] += $6; - url[$2][$4]["time_us"] += $8; -} - -function avg(s, c) { - if (c == 0) { - return 0; - } else { - return s / c; - } -} - -END { - for (x in url) { - for (y in url[x]) { - print "url", x, "status", y, \ - "count", url[x][y]["count"], "time_us", url[x][y]["time_us"], \ - "time_avg_us", avg(url[x][y]["time_us"], url[x][y]["count"]); - } - } -} -- cgit v1.2.3