diff options
author | Zhang Qiang <qiang.z.zhang@intel.com> | 2012-05-29 12:22:00 +0800 |
---|---|---|
committer | Zhang Qiang <qiang.z.zhang@intel.com> | 2012-05-29 12:22:00 +0800 |
commit | 02f0634ac29e19c68279e5544cac963e7f1203b8 (patch) | |
tree | b983472f94ef063cedf866d8ecfb55939171779d /test_micro/report.awk | |
parent | e776056ea09ba0b6d9505ced6913c9190a12d632 (diff) | |
download | db4-master.tar.gz db4-master.tar.bz2 db4-master.zip |
Diffstat (limited to 'test_micro/report.awk')
-rw-r--r-- | test_micro/report.awk | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/test_micro/report.awk b/test_micro/report.awk new file mode 100644 index 0000000..6ae3303 --- /dev/null +++ b/test_micro/report.awk @@ -0,0 +1,40 @@ +# $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"); + } +} |