File: avner-analyze.awk

package info (click to toggle)
sockperf 3.7-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 1,912 kB
  • sloc: cpp: 8,092; perl: 7,225; sh: 3,254; makefile: 114; awk: 93
file content (32 lines) | stat: -rwxr-xr-x 906 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#!/bin/awk -f

#
# This script will nicely analyze output file that was created using ./avner-test or ./avner-test2
#

/^[ \t]*#/ {print; next} # echo and skip comment line
NF !=3 || $3+0 <= 0 {next} # Skip empty or text lines
{   # handle all other lines
	nsec = 1000 * $3
	sum[$1] += nsec
	num[$1] ++
	sum_sqr[$1] += nsec * nsec
}

END {
	for (test in num) {
		avg[test] = sum[test] / num[test]
		std = (num[test] > 1) ? sqrt ( (sum_sqr[test] - num[test]*avg[test]*avg[test]) / (num[test] - 1) ) : 0
		printf "%s: %12s: avg=%.3fusec (std=%.3f, #Observations=%d)\n", FILENAME, test, avg[test]/1000, std/1000, num[test]
	}

        for (test in num) {
                if (prev) {
                        printf "====> %s: delta_avg (%s_avg - %s_avg) = %.3fusec\n", FILENAME, prev, test, (avg[prev]-avg[test])/1000
                }
		else {
			printf "====> \n"
		}
                prev = test
        }
}