mirror of
https://github.com/berkeleydb/libdb.git
synced 2024-11-16 09:06:25 +00:00
40 lines
889 B
Awk
40 lines
889 B
Awk
# $Id$
|
|
|
|
/^[^#]/ {
|
|
total[$1] += $2
|
|
sum[$1] += $2 * $2
|
|
++count[$1];
|
|
}
|
|
END {
|
|
# Compute the average, find the maximum.
|
|
for (i in total) {
|
|
avg[i] = total[i] / count[i];
|
|
if (max < avg[i])
|
|
max = avg[i]
|
|
}
|
|
|
|
for (i in total) {
|
|
# Calculate variance by raw score method.
|
|
var = (sum[i] - ((total[i] * total[i]) / count[i])) / count[i];
|
|
|
|
# The standard deviation is the square root of the variance.
|
|
stdv = sqrt(var);
|
|
|
|
# Display the release value, the average score, and run count.
|
|
printf("%s:%.2f:%d:", i, avg[i], count[i]);
|
|
|
|
# If this run wasn't the fastest, display the percent by which
|
|
# this run was slower.
|
|
if (max != avg[i])
|
|
printf("%.0f%%", ((max - avg[i]) / max) * 100);
|
|
|
|
printf(":");
|
|
|
|
# If there was more than a single run, display the relative
|
|
# standard deviation.
|
|
if (count[i] > 1)
|
|
printf("%.0f%%", stdv * 100 / avg[i]);
|
|
|
|
printf("\n");
|
|
}
|
|
}
|