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]))
|