summaryrefslogtreecommitdiffstats
path: root/dis/summarize.py
blob: f8f692974e43f301500ffebda823dfe27fcec0c0 (plain) (blame)
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#!/usr/bin/python3
import sys

f = sys.argv[1]
res = {}
mem_res = {}
memw_res = {}
samples = {}
max_res = {}

with open(f) as fp:
    for line in fp:
        s = line.split()
        if s[0] not in res:
#            print(s[0])
            res[s[0]] = list([int(s[5])])#)int(s[5])
            mem_res[s[0]] = int(s[8])
            memw_res[s[0]] = int(s[9])
            samples[s[0]] = int(s[4])
            max_res[s[0]] = int(s[5])
        else:
            res[s[0]].append(int(s[5]))
            mem_res[s[0]] += int(s[8])
            memw_res[s[0]] += int(s[9])
            max_res[s[0]] = max(int(s[5]), max_res[s[0]])
## {{{ http://code.activestate.com/recipes/511478/ (r1)
import math
import functools

def percentile(N, percent, key=lambda x:x):
    """
    Find the percentile of a list of values.

    @parameter N - is a list of values. Note N MUST BE already sorted.
    @parameter percent - a float value from 0.0 to 1.0.
    @parameter key - optional key function to compute value from each element of N.

    @return - the percentile of the values
    """
    if not N:
        return None
    k = (len(N)-1) * percent
    f = math.floor(k)
    c = math.ceil(k)
    if f == c:
        return key(N[int(k)])
    d0 = key(N[int(f)]) * (c-k)
    d1 = key(N[int(c)]) * (k-f)
    return d0+d1
## end of http://code.activestate.com/recipes/511478/ }}}
"""
print("Average times:")
for r in res.keys():
    print(res[r]/samples[r])

print("Average memory read:")
for r in mem_res.keys():
    print(mem_res[r]/samples[r])

print("Average memory write:")
for r in memw_res.keys():
    print(memw_res[r]/samples[r])

print("Max times:")
for r in max_res.keys():
    print(max_res[r])
"""
print("Name\t\tAverage\t\tMax\t\t99th %\t\tAvg Mem Read\tAvg Mem Write\t")
for r in res.keys():
#    print(r + "\t\t" + str(res[r]/samples[r]) + "\t\t" + str(max_res[r]))
    print("{:12}\t{:>12.0f}\t{:>12.0f}\t{:>12.0f}\t{:>12.0f}\t{:>12.0f}".format(r, sum(res[r])/len(res[r]), max(res[r]), percentile(sorted(res[r]), 0.99), mem_res[r]/samples[r], memw_res[r]/samples[r]))