import sys
import numpy as np
-
-CUTOFF = 0.8
+import argparse
def trimvalues(values, cutoff):
+ if not cutoff:
+ return values
+
sv = sorted(values)
n = round(len(values) * cutoff)
return sv[i:n + i]
-def parse_file(f):
+def parse_file(f, cutoff):
val = dict()
while True:
line = f.readline().split()
s = []
n = []
for k, v in sorted(val.items()):
- v = trimvalues(v, CUTOFF)
+ v = trimvalues(v, cutoff)
x += [k]
y += [np.mean(v)]
s += [np.std(v)]
return x, y, s, n
-print("# cutoff: %.2f" % CUTOFF)
+
+parser = argparse.ArgumentParser(description='Parse timings')
+parser.add_argument('--cutoff', '-c', type=float, default=0)
+parser.add_argument('file', nargs='?')
+args = parser.parse_args()
+
+if args.cutoff:
+ print("# cutoff: %.2f" % args.cutoff)
+
print("# len mean stddev nelemen")
-if len(sys.argv) > 1:
- filename = sys.argv[1]
+if args.file:
+ filename = args.file
else:
filename = "/dev/stdin"
with open(filename) as f:
- x, y, s, n = parse_file(f)
+ x, y, s, n = parse_file(f, args.cutoff)
for i in zip(x, y, s, n):
print("%d %.2f %.2f %d" % (i[0], i[1], i[2], i[3]))
for ((i=0; i < 10;))
do
err=${log}.${i}.stderr
+ echo "running #$i"
sudo chrt -f 99 /usr/bin/time -f \
"\n***\ntime: %E\ncontext switches: %c\nwaits: %w" \
tools/depmod -a > ${log}.$i 2>$err
[[ ! -z "$(grep 'context switches: 0' $err)" ]] && ((i++))
done
+echo "consolidating in $log"
rm ${log}.0*
-cat "$log".* | scripts/parse-timing > $log
+cat "$log".* | scripts/parse-timing --cutoff 0.8 > $log
rm ${log}.*