summaryrefslogtreecommitdiffstats
path: root/toolkit/content/tests/fennec-tile-testapp/logread.py
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/content/tests/fennec-tile-testapp/logread.py')
-rw-r--r--toolkit/content/tests/fennec-tile-testapp/logread.py104
1 files changed, 0 insertions, 104 deletions
diff --git a/toolkit/content/tests/fennec-tile-testapp/logread.py b/toolkit/content/tests/fennec-tile-testapp/logread.py
deleted file mode 100644
index afa1fa524..000000000
--- a/toolkit/content/tests/fennec-tile-testapp/logread.py
+++ /dev/null
@@ -1,104 +0,0 @@
-#!/usr/bin/python
-import re, sys
-
-interesting_re = re.compile("(js_Execute|CallHook) ([^ ]+) ([^ ]+ )?([^ ]+ms)")
-class Entry:
- def __init__(self, kind, depth, file, linenum, func, timetaken):
- self.kind = kind
- self.depth = depth
- self.file = file
- self.linenum = linenum
- self.func = func
- self.timetaken = timetaken
- self.calls = 0
- self.duration = 0
-
- def __str__(self):
- return " ".join(map(str,[self.kind, self.depth, self.file, self.linenum, self.func, self.timetaken]))
-
- def id(self):
- if self.kind == "js_Execute":
- return self.file
- else:
- if self.file and self.linenum:
- strout = "%s:%d" % (self.file, self.linenum)
- if self.func:
- strout = "%s %s" % (self.func, strout)
- return strout
- elif self.func:
- return self.func
- else:
- print("No clue what my id is:"+self)
-
- def call(self, timetaken):
- self.calls += 1
- self.duration += timetaken
-
-def parse_line(line):
- m = interesting_re.search(line)
- if not m:
- return None
-
- ms_index = line.find("ms")
- depth = m.start() - ms_index - 3
- kind = m.group(1)
- func = None
- file = None
- linenum = None
- if kind == "CallHook":
- func = m.group(2)
- file = m.group(3)
- colpos = file.rfind(":")
- (file,linenum) = file[:colpos], file[colpos+1:-1]
- if linenum == "0":
- linenum = None
- else:
- linenum = int(linenum)
- offset = 1
- else:
- file = m.group(3)
-
- timetaken = None
- try:
- timetaken = float(m.group(4)[:-2])
- except:
- return None
- return Entry(kind, depth, file, linenum, func, timetaken)
-
-def compare(x,y):
- diff = x[1].calls - y[1].calls
- if diff == 0:
- return int(x[1].duration - y[1].duration)
- elif diff > 0:
- return 1
- elif diff < 0:
- return -1
-
-def frequency(ls):
- dict = {}
- for item in ls:
- id = item.id()
- stat = None
- if not id in dict:
- stat = dict[id] = item
- else:
- stat = dict[id]
- stat.call(item.timetaken)
-
- ls = dict.items()
- ls.sort(compare)
- ls = filter(lambda (_,item): item.duration > 20, ls)
-# ls = filter(lambda (_,item): item.file and item.file.find("browser.js") != -1 and item.linenum <= 1223 and item.linenum >1067, ls)
- for key, item in ls:
- print(item.calls,key, str(item.duration)+"ms")
-
-def go():
- file = sys.argv[1]
-
- ls = filter(lambda x: x != None, map(parse_line, open(file).readlines()))
-
- frequency(ls)
- print ls[0]
-
-go()
-