summaryrefslogtreecommitdiff
path: root/examples/ide/gtkprof.py
diff options
context:
space:
mode:
Diffstat (limited to 'examples/ide/gtkprof.py')
-rwxr-xr-xexamples/ide/gtkprof.py133
1 files changed, 0 insertions, 133 deletions
diff --git a/examples/ide/gtkprof.py b/examples/ide/gtkprof.py
deleted file mode 100755
index 649456f0..00000000
--- a/examples/ide/gtkprof.py
+++ /dev/null
@@ -1,133 +0,0 @@
-#!/usr/bin/env python
-
-import profile, pstats, fpformat
-
-import pygtk
-pygtk.require('2.0')
-import gtk
-
-class PStatWindow(gtk.Window):
- def __init__(self, stats):
- gtk.Window.__init__(self)
- self.connect("destroy", self.quit)
- self.connect("delete_event", self.quit)
- self.set_title("Profile Statistics")
-
- self.stats = stats
-
- box1 = gtk.VBox()
- self.add(box1)
- box1.show()
-
- text = `stats.total_calls` + " function calls "
- if stats.total_calls != stats.prim_calls:
- text = text + "( " + `stats.prim_calls` + " primitive calls) "
- text = text + "in " + fpformat.fix(stats.total_tt, 3) + " CPU seconds"
- label = gtk.Label(text)
- label.set_padding(2, 2)
- box1.pack_start(label, expand=False)
- label.show()
-
- swin = gtk.ScrolledWindow()
- swin.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
- box1.pack_start(swin)
- swin.show()
-
- titles = [('ncalls', 40), ('tottime', 50), ('percall', 50),
- ('cumtime', 50), ('percall', 50),
- ('filename:lineno(function)', 10)]
- ls = gtk.ListStore(*((str,)*len(titles)))
- list = gtk.TreeView(ls)
- for n in range(len(titles)):
- cell = gtk.CellRendererText()
- cell.set_property('xalign', 1.0)
- tvc = gtk.TreeViewColumn(titles[n][0], cell, text=n)
- tvc.set_min_width(titles[n][1])
- list.append_column(tvc)
- list.set_size_request(500, 200)
- self.list = list
- list.set_border_width(10)
- swin.add(list)
- list.show()
-
- self.insert_stats()
-
- separator = gtk.HSeparator()
- box1.pack_start(separator, expand=False)
- separator.show()
-
- box2 = gtk.VBox(spacing=10)
- box2.set_border_width(10)
- box1.pack_start(box2, expand=False)
- box2.show()
-
- button = gtk.Button("close")
- button.connect("clicked", self.quit)
- self.close_button = button
- box2.pack_start(button)
- button.set_flags(gtk.CAN_DEFAULT)
- button.grab_default()
- button.show()
-
- def quit(self, *args):
- self.hide()
- self.destroy()
- gtk.main_quit()
-
- def get_stats_list(self):
- if self.stats.fcn_list:
- return self.stats.fcn_list[:]
- else:
- return self.stats.stats.keys()
-
- def insert_stats(self):
- list = self.get_stats_list()
- if list:
- row = [None] * 6
- model = self.list.get_model()
- for func in list:
- cc,nc,tt,ct,callers = self.stats.stats[func]
- row[0] = `nc`
- if nc != cc:
- row[0] = row[0] + '/' + `cc`
- row[1] = fpformat.fix(tt, 3)
- if nc == 0:
- row[2] = ''
- else:
- row[2] = fpformat.fix(tt/nc, 3)
- row[3] = fpformat.fix(ct, 3)
- if cc == 0:
- row[4] = ''
- else:
- row[4] = fpformat.fix(ct/cc, 3)
- file,line,name = func
- row[5] = file + ":" + `line` + "(" + name + \
- ")"
- self.list.get_model().append(row)
- return
-
-def run(cmd):
- prof = profile.Profile()
- try:
- stats = pstats.Stats(prof.run(cmd))
- except SystemExit:
- pass
- stats.strip_dirs().sort_stats("time", "module", "name")
- win = PStatWindow(stats)
- win.show()
- gtk.main()
-
-def run_file(file):
- return run('execfile("' + file + '")')
-
-
-if __name__ == '__main__':
- import sys, os
- if not sys.argv[1:]:
- print "usage: gtkprof.py scriptfile [args ...]"
- sys.exit(2)
- filename = sys.argv[1]
- del sys.argv[0]
- sys.path.insert(0, os.path.dirname(filename))
-
- run_file(filename)