aboutsummaryrefslogtreecommitdiff
path: root/capture.sh
diff options
context:
space:
mode:
authorGravatar Andres Erbsen <andreser@mit.edu>2017-07-05 12:10:43 -0400
committerGravatar Andres Erbsen <andreser@mit.edu>2017-07-05 12:11:37 -0400
commit0a0a7db3bd132eab9a36c1f8fa901dc7ea20b8e7 (patch)
treec61be242b33278f640c84360def3e8c092042d83 /capture.sh
parentd950635488d888960d876cd50d3b92ee1d48a6da (diff)
benchmarking: correct for differences in CPU and TSC frequency
Diffstat (limited to 'capture.sh')
-rwxr-xr-xcapture.sh10
1 files changed, 7 insertions, 3 deletions
diff --git a/capture.sh b/capture.sh
index 868cc4384..1ef90ba9b 100755
--- a/capture.sh
+++ b/capture.sh
@@ -2,14 +2,18 @@
set -eu
machine=$(etc/machine.sh)
-freq=$(etc/freq.sh)
+cpufreq=$(etc/cpufreq)
+tscfreq=$(etc/tscfreq)
compiler=$($1/compiler.sh -dumpversion)
-measurement=$($1/measure $2 | (LC_ALL=C sort -n || true) | head "-$(($2/2))" | tail -1)
revision=$(git rev-parse --short HEAD)
+status=$(git status -u no --porcelain >/dev/null && echo '+')
+tsccycles=$($1/measure $2 | (LC_ALL=C sort -n || true) | head "-$(($2/2))" | tail -1)
+cpucycles_expr="$tsccycles*$cpufreq/$tscfreq"
+cpucycles=$(echo "$cpucycles_expr" | bc)
(
grep -v "$machine" "$1/measurements.txt" 2>/dev/null || true;
- echo "$measurement $machine $freq $compiler $revision"
+ echo "$cpucycles =$cpucycles_expr $machine $compiler $revision$status"
) | (LC_ALL=C sort -n || true) > "$1/measurements.txt.tmp"
mv "$1/measurements.txt.tmp" "$1/measurements.txt"