diff options
author | Sean Finney <seanius@debian.org> | 2009-08-31 22:33:06 +0200 |
---|---|---|
committer | Sean Finney <seanius@debian.org> | 2009-08-31 22:35:01 +0200 |
commit | c305176d04603000c7c396b2c789cb4b5226088a (patch) | |
tree | d8a26c5918f695d2041c24f0b7736003ae4f31c9 /pagehandler.py | |
parent | d77a60063e61f1748b43c3d7accb8c942402a2cd (diff) | |
download | patch-tracker-c305176d04603000c7c396b2c789cb4b5226088a.tar.gz |
even better profiling, new -o output cmdline option
use cProfile instead of profile, it's much faster and better as
long as it doesn't need to be extended.
the -o option redirects the output to the specified file, instead
of printing it to stdout (or not printing it, both of which aren't
very good for general testing/profiling purposes).
Diffstat (limited to 'pagehandler.py')
-rwxr-xr-x | pagehandler.py | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/pagehandler.py b/pagehandler.py index 995f95c..a282aae 100755 --- a/pagehandler.py +++ b/pagehandler.py @@ -27,7 +27,7 @@ if __name__ == '__main__': os.environ['SCRIPT_FILENAME'] = sys.argv[0] from wsgiref import simple_server as ss import getopt - import profile, pstats + import cProfile as profile, pstats def cmd_help(): print """ @@ -44,14 +44,17 @@ usage: %s [-hp] print "%s: %s"%(h,v) print - opts,args = getopt.getopt(sys.argv[1:], "hp") + opts,args = getopt.getopt(sys.argv[1:], "ho:p") profiling = False + interactive_ofile = sys.stdout for o,v in opts: if o == "-h": cmd_help() sys.exit(0) if o == "-p": profiling = True + if o == "-o": + interactive_ofile = file(v, "w") if not args: print "pagehandler test server running..." @@ -70,8 +73,9 @@ usage: %s [-hp] else: os.environ['PATH_INFO'] = args[0] if not profiling: - application(os.environ, cmdline_resp) + interactive_ofile.write(application(os.environ, cmdline_resp)) else: - profile.run("application(os.environ, cmdline_resp)", "profile.out") + profile.run("interactive_ofile.write(application(os.environ, cmdline_resp))", "profile.out") p = pstats.Stats("profile.out") p.strip_dirs().sort_stats('time').print_stats(20) + p.strip_dirs().sort_stats('time').print_callers(20) |