Mercurial > repos > rhope
view procprofile.py @ 112:fd23ab2c1a73
Small changes to make profile data a little cleaner
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Mon, 11 Oct 2010 21:53:27 -0400 |
parents | |
children | 60906f8803ef |
line wrap: on
line source
#!/usr/bin/env python def unescapename(name): trans = {"UN":'_',"AT":'@',"SP":' ',"QN":'?',"PL":'+',"MN":'-',"TM":'*',"DV":'/',"LT":'<',"GT":'>',"NT":'!',"EQ":'=',"PR":"'"} out = '' while (name): before,_,name = name.partition('_') if name: out += before[:-2] key = before[-2:] if key in trans: out += trans[key] else: out += key+_ else: out += before return out.replace('__', '_') names = [unescapename(line.strip()) for line in open('workernames.txt', 'r')] records = [] data = open('profiler.txt', 'r') for line in data: funcid,_,rest = line[len('Func: '):].partition('\tCount: ') count,_,rest = rest.partition('\tTime: ') total,_,rest = rest.partition('\tAvg: ') avg,_,rest = rest.partition('\tSelf: ') self,_,selfavg = rest.partition('\tAvg: ') records.append((names[int(funcid)], int(count), int(total), float(avg), int(self), float(selfavg))) records.sort(key=lambda el: el[3]) print 'Func\tCount\tTotal(us)\tAvg(us)\tSelf(us)\tSelf Avg(us)' for record in records: print '%s\t%d\t%d\t%f\t%d\t%f' % record