From c3105153a5044c49435094505ae13990f48a483f Mon Sep 17 00:00:00 2001 From: Aldo Cortesi Date: Sun, 27 Mar 2011 13:10:06 +1300 Subject: Add some debugging output to help troubleshoot a performance problem. --- libmproxy/console.py | 10 ++++++++++ mitmproxy | 2 ++ 2 files changed, 12 insertions(+) diff --git a/libmproxy/console.py b/libmproxy/console.py index bbf69d2d..ed6c78af 100644 --- a/libmproxy/console.py +++ b/libmproxy/console.py @@ -651,6 +651,9 @@ class StatusBar(WWrap): if opts: r.append("[%s]"%(":".join(opts))) + if self.master.debug: + r.append("[lt:%0.3f]"%self.master.looptime) + return r def redraw(self): @@ -767,6 +770,7 @@ class Options(object): __slots__ = [ "anticache", "client_replay", + "debug", "keepserving", "kill", "intercept", @@ -809,6 +813,7 @@ class ConsoleMaster(flow.FlowMaster): ] def __init__(self, server, options): flow.FlowMaster.__init__(self, server, ConsoleState()) + self.looptime = 0 self.conn_list_view = None self.set_palette() @@ -849,6 +854,9 @@ class ConsoleMaster(flow.FlowMaster): if options.server_replay: self.server_playback_path(options.server_replay) + self.debug = options.debug + + def _runscript(self, f, path): path = os.path.expanduser(path) self.state.last_script = path @@ -1292,6 +1300,7 @@ class ConsoleMaster(flow.FlowMaster): slave.start() try: while not controller.exit: + startloop = time.time() self.statusbar.redraw() size = self.drawscreen() self.tick(q) @@ -1427,6 +1436,7 @@ class ConsoleMaster(flow.FlowMaster): k = None if k: self.view.keypress(size, k) + self.looptime = time.time() - startloop except (Stop, KeyboardInterrupt): pass diff --git a/mitmproxy b/mitmproxy index 76011f95..a1828b84 100755 --- a/mitmproxy +++ b/mitmproxy @@ -27,6 +27,7 @@ if __name__ == '__main__': version="%%prog %s"%VERSION, ) cmdline.common_options(parser) + parser.add_option("--debug", dest="debug", default=False, action="store_true") group = OptionGroup( @@ -57,6 +58,7 @@ if __name__ == '__main__': opts = console.Options(**cmdline.get_common_options(options)) opts.intercept = options.intercept opts.limit = options.limit + opts.debug = options.debug m = console.ConsoleMaster(server, opts) for i in args: -- cgit v1.2.3