Mercurial > repos > rhope
annotate procprofile.py @ 113:7ca80654c9bb
Merge Escape Rhope Name performance hack back in
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Mon, 11 Oct 2010 21:53:49 -0400 |
parents | fd23ab2c1a73 |
children | 60906f8803ef |
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: ') |
fd23ab2c1a73
Small changes to make profile data a little cleaner
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
30 self,_,selfavg = rest.partition('\tAvg: ') |
fd23ab2c1a73
Small changes to make profile data a little cleaner
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
31 records.append((names[int(funcid)], int(count), int(total), float(avg), int(self), float(selfavg))) |
fd23ab2c1a73
Small changes to make profile data a little cleaner
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
32 |
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 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
|
35 |
fd23ab2c1a73
Small changes to make profile data a little cleaner
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
36 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
|
37 for record in records: |
fd23ab2c1a73
Small changes to make profile data a little cleaner
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
38 print '%s\t%d\t%d\t%f\t%d\t%f' % record |
fd23ab2c1a73
Small changes to make profile data a little cleaner
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
39 |
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 |