summaryrefslogtreecommitdiffstats
path: root/Mac/Tools/IDE/ProfileBrowser.py
diff options
context:
space:
mode:
Diffstat (limited to 'Mac/Tools/IDE/ProfileBrowser.py')
-rw-r--r--Mac/Tools/IDE/ProfileBrowser.py138
1 files changed, 69 insertions, 69 deletions
diff --git a/Mac/Tools/IDE/ProfileBrowser.py b/Mac/Tools/IDE/ProfileBrowser.py
index a19641c..a2dafdd 100644
--- a/Mac/Tools/IDE/ProfileBrowser.py
+++ b/Mac/Tools/IDE/ProfileBrowser.py
@@ -9,84 +9,84 @@ import pstats, fpformat
# increase precision
def f8(x):
- return string.rjust(fpformat.fix(x, 4), 8)
+ return string.rjust(fpformat.fix(x, 4), 8)
pstats.f8 = f8
# hacking around a hack
if sys.version[:3] > '1.4':
- timer = Evt.TickCount
+ timer = Evt.TickCount
else:
- def timer(TickCount = Evt.TickCount):
- return TickCount() / 60.0
+ def timer(TickCount = Evt.TickCount):
+ return TickCount() / 60.0
class ProfileBrowser:
-
- def __init__(self, stats = None):
- self.sortkeys = ('calls',)
- self.setupwidgets()
- self.setstats(stats)
-
- def setupwidgets(self):
- self.w = W.Window((580, 400), "Profile Statistics", minsize = (200, 100), tabbable = 0)
- self.w.divline = W.HorizontalLine((0, 20, 0, 0))
- self.w.titlebar = W.TextBox((4, 4, 40, 12), 'Sort by:')
- self.buttons = []
- x = 54
- width1 = 50
- width2 = 75
- for name in ["calls", "time", "cumulative", "stdname", "file", "line", "name"]:
- if len(name) > 6:
- width = width2
- else:
- width = width1
- self.w["button_" + name] = W.RadioButton((x, 4, width, 12), name, self.buttons, self.setsort)
- x += width + 10
- self.w.button_calls.set(1)
- self.w.text = W.TextEditor((0, 21, -15, -15), inset = (6, 5),
- readonly = 1, wrap = 0, fontsettings = ('Monaco', 0, 9, (0, 0, 0)))
- self.w._bary = W.Scrollbar((-15, 20, 16, -14), self.w.text.vscroll, max = 32767)
- self.w._barx = W.Scrollbar((-1, -15, -14, 16), self.w.text.hscroll, max = 32767)
- self.w.open()
-
- def setstats(self, stats):
- self.stats = stats
- self.stats.strip_dirs()
- self.displaystats()
-
- def setsort(self):
- # Grmpf. The callback doesn't give us the button:-(
- for b in self.buttons:
- if b.get():
- if b._title == self.sortkeys[0]:
- return
- self.sortkeys = (b._title,) + self.sortkeys[:3]
- break
- self.displaystats()
-
- def displaystats(self):
- W.SetCursor('watch')
- apply(self.stats.sort_stats, self.sortkeys)
- saveout = sys.stdout
- try:
- s = sys.stdout = StringIO.StringIO()
- self.stats.print_stats()
- finally:
- sys.stdout = saveout
- text = string.join(string.split(s.getvalue(), '\n'), '\r')
- self.w.text.set(text)
+
+ def __init__(self, stats = None):
+ self.sortkeys = ('calls',)
+ self.setupwidgets()
+ self.setstats(stats)
+
+ def setupwidgets(self):
+ self.w = W.Window((580, 400), "Profile Statistics", minsize = (200, 100), tabbable = 0)
+ self.w.divline = W.HorizontalLine((0, 20, 0, 0))
+ self.w.titlebar = W.TextBox((4, 4, 40, 12), 'Sort by:')
+ self.buttons = []
+ x = 54
+ width1 = 50
+ width2 = 75
+ for name in ["calls", "time", "cumulative", "stdname", "file", "line", "name"]:
+ if len(name) > 6:
+ width = width2
+ else:
+ width = width1
+ self.w["button_" + name] = W.RadioButton((x, 4, width, 12), name, self.buttons, self.setsort)
+ x += width + 10
+ self.w.button_calls.set(1)
+ self.w.text = W.TextEditor((0, 21, -15, -15), inset = (6, 5),
+ readonly = 1, wrap = 0, fontsettings = ('Monaco', 0, 9, (0, 0, 0)))
+ self.w._bary = W.Scrollbar((-15, 20, 16, -14), self.w.text.vscroll, max = 32767)
+ self.w._barx = W.Scrollbar((-1, -15, -14, 16), self.w.text.hscroll, max = 32767)
+ self.w.open()
+
+ def setstats(self, stats):
+ self.stats = stats
+ self.stats.strip_dirs()
+ self.displaystats()
+
+ def setsort(self):
+ # Grmpf. The callback doesn't give us the button:-(
+ for b in self.buttons:
+ if b.get():
+ if b._title == self.sortkeys[0]:
+ return
+ self.sortkeys = (b._title,) + self.sortkeys[:3]
+ break
+ self.displaystats()
+
+ def displaystats(self):
+ W.SetCursor('watch')
+ apply(self.stats.sort_stats, self.sortkeys)
+ saveout = sys.stdout
+ try:
+ s = sys.stdout = StringIO.StringIO()
+ self.stats.print_stats()
+ finally:
+ sys.stdout = saveout
+ text = string.join(string.split(s.getvalue(), '\n'), '\r')
+ self.w.text.set(text)
def main():
- import pstats
- args = sys.argv[1:]
- for i in args:
- stats = pstats.Stats(i)
- browser = ProfileBrowser(stats)
- else:
- filename = EasyDialogs.AskFileForOpen(message='Profiler data')
- if not filename: sys.exit(0)
- stats = pstats.Stats(filename)
- browser = ProfileBrowser(stats)
+ import pstats
+ args = sys.argv[1:]
+ for i in args:
+ stats = pstats.Stats(i)
+ browser = ProfileBrowser(stats)
+ else:
+ filename = EasyDialogs.AskFileForOpen(message='Profiler data')
+ if not filename: sys.exit(0)
+ stats = pstats.Stats(filename)
+ browser = ProfileBrowser(stats)
if __name__ == '__main__':
- main()
+ main()