annotate procprofile.py @ 164:429afd920a23

Allow sending and receiving arrays of arbitrary objects rather than just UInt8s
author Mike Pavone <pavone@retrodev.com>
date Mon, 10 Jan 2011 00:25:35 -0500
parents 60906f8803ef
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
112
fd23ab2c1a73 Small changes to make profile data a little cleaner
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
1 #!/usr/bin/env python
fd23ab2c1a73 Small changes to make profile data a little cleaner
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
2
fd23ab2c1a73 Small changes to make profile data a little cleaner
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
3 def unescapename(name):
fd23ab2c1a73 Small changes to make profile data a little cleaner
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
4 trans = {"UN":'_',"AT":'@',"SP":' ',"QN":'?',"PL":'+',"MN":'-',"TM":'*',"DV":'/',"LT":'<',"GT":'>',"NT":'!',"EQ":'=',"PR":"'"}
fd23ab2c1a73 Small changes to make profile data a little cleaner
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
5 out = ''
fd23ab2c1a73 Small changes to make profile data a little cleaner
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
6 while (name):
fd23ab2c1a73 Small changes to make profile data a little cleaner
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
7 before,_,name = name.partition('_')
fd23ab2c1a73 Small changes to make profile data a little cleaner
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
8 if name:
fd23ab2c1a73 Small changes to make profile data a little cleaner
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
9 out += before[:-2]
fd23ab2c1a73 Small changes to make profile data a little cleaner
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
10 key = before[-2:]
fd23ab2c1a73 Small changes to make profile data a little cleaner
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
11 if key in trans:
fd23ab2c1a73 Small changes to make profile data a little cleaner
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
12 out += trans[key]
fd23ab2c1a73 Small changes to make profile data a little cleaner
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
13 else:
fd23ab2c1a73 Small changes to make profile data a little cleaner
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
14 out += key+_
fd23ab2c1a73 Small changes to make profile data a little cleaner
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
15 else:
fd23ab2c1a73 Small changes to make profile data a little cleaner
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
16 out += before
fd23ab2c1a73 Small changes to make profile data a little cleaner
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
17 return out.replace('__', '_')
fd23ab2c1a73 Small changes to make profile data a little cleaner
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
18
fd23ab2c1a73 Small changes to make profile data a little cleaner
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
19
fd23ab2c1a73 Small changes to make profile data a little cleaner
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
20 names = [unescapename(line.strip()) for line in open('workernames.txt', 'r')]
fd23ab2c1a73 Small changes to make profile data a little cleaner
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
21 records = []
fd23ab2c1a73 Small changes to make profile data a little cleaner
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
22
fd23ab2c1a73 Small changes to make profile data a little cleaner
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
23 data = open('profiler.txt', 'r')
fd23ab2c1a73 Small changes to make profile data a little cleaner
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
24
fd23ab2c1a73 Small changes to make profile data a little cleaner
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
25 for line in data:
fd23ab2c1a73 Small changes to make profile data a little cleaner
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
26 funcid,_,rest = line[len('Func: '):].partition('\tCount: ')
fd23ab2c1a73 Small changes to make profile data a little cleaner
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
27 count,_,rest = rest.partition('\tTime: ')
fd23ab2c1a73 Small changes to make profile data a little cleaner
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
28 total,_,rest = rest.partition('\tAvg: ')
fd23ab2c1a73 Small changes to make profile data a little cleaner
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
29 avg,_,rest = rest.partition('\tSelf: ')
116
60906f8803ef Improved profiling
Mike Pavone <pavone@retrodev.com>
parents: 112
diff changeset
30 self,_,rest = rest.partition('\tAvg: ')
60906f8803ef Improved profiling
Mike Pavone <pavone@retrodev.com>
parents: 112
diff changeset
31 selfavg,_,nestcount = rest.partition('\tNested Count: ')
60906f8803ef Improved profiling
Mike Pavone <pavone@retrodev.com>
parents: 112
diff changeset
32 records.append((names[int(funcid)], int(count), int(total), float(avg), int(self), float(selfavg), int(nestcount)))
112
fd23ab2c1a73 Small changes to make profile data a little cleaner
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
33
fd23ab2c1a73 Small changes to make profile data a little cleaner
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
34
fd23ab2c1a73 Small changes to make profile data a little cleaner
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
35 records.sort(key=lambda el: el[3])
fd23ab2c1a73 Small changes to make profile data a little cleaner
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
36
fd23ab2c1a73 Small changes to make profile data a little cleaner
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
37 print 'Func\tCount\tTotal(us)\tAvg(us)\tSelf(us)\tSelf Avg(us)'
fd23ab2c1a73 Small changes to make profile data a little cleaner
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
38 for record in records:
116
60906f8803ef Improved profiling
Mike Pavone <pavone@retrodev.com>
parents: 112
diff changeset
39 print '%s\t%d\t%d\t%f\t%d\t%f\t%d' % record
112
fd23ab2c1a73 Small changes to make profile data a little cleaner
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
40
fd23ab2c1a73 Small changes to make profile data a little cleaner
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
41
fd23ab2c1a73 Small changes to make profile data a little cleaner
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
42