diff -r 3fa0d2b297c6 Lib/cProfile.py --- a/Lib/cProfile.py Tue Jun 24 13:03:54 2014 -0700 +++ b/Lib/cProfile.py Wed Jun 25 05:19:47 2014 +0800 @@ -123,7 +123,7 @@ def main(): import os, sys from optparse import OptionParser - usage = "cProfile.py [-o output_file_path] [-s sort] scriptfile [arg] ..." + usage = "cProfile.py [-o output_file_path] [-s sort] [-m module] [scriptfile] [arg] ..." parser = OptionParser(usage=usage) parser.allow_interspersed_args = False parser.add_option('-o', '--outfile', dest="outfile", @@ -131,6 +131,9 @@ parser.add_option('-s', '--sort', dest="sort", help="Sort order when printing to stdout, based on pstats.Stats class", default=-1) + parser.add_option('-m', '--module', dest='module', + help="Profile the module", + default=None) if not sys.argv[1:]: parser.print_usage() @@ -139,8 +142,11 @@ (options, args) = parser.parse_args() sys.argv[:] = args - if len(args) > 0: - progname = args[0] + if len(args) > 0 or options.module: + if options.module: + progname = __import__(options.module).__file__ + else: + progname = args[0] sys.path.insert(0, os.path.dirname(progname)) with open(progname, 'rb') as fp: code = compile(fp.read(), progname, 'exec')