# 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"]); } } }