示例#1
0
 def inner(*args, **kwargs):
     set_clock_type(clock_type)
     start()
     retval = func(*args, **kwargs)
     stop()
     stats = get_func_stats()
     stats.save(name, type=save_type)
     return retval
 def inner(*args, **kwargs):
     set_clock_type(clock_type)
     start()
     retval = func(*args, **kwargs)
     stop()
     stats = get_func_stats()
     stats.save(name, type=save_type)
     return retval
示例#3
0
def main():
    from optparse import OptionParser

    usage = "python -m greenlet_profiler [-b] [-s] [scriptfile] args ..."
    parser = OptionParser(usage=usage)
    parser.allow_interspersed_args = False
    parser.add_option(
        "-b",
        "--builtins",
        action="store_true",
        dest="profile_builtins",
        default=False,
        help="Profiles builtin functions when set. [default: False]")

    parser.add_option(
        "-s",
        "--single_thread",
        action="store_true",
        dest="profile_single_thread",
        default=False,
        help="Profiles only the thread that calls start(). [default: False]")

    clock_types = ['wall', 'cpu']
    parser.add_option("-c",
                      "--clock_type",
                      dest="clock_type",
                      type='choice',
                      choices=clock_types,
                      default='cpu',
                      help="One of %s" % clock_types)

    options, args = parser.parse_args()

    if len(args) > 0:
        sys.path.insert(0, os.path.dirname(args[0]))
        set_clock_type(options.clock_type)
        start(options.profile_builtins, not options.profile_single_thread)
        if sys.version_info >= (3, 0):
            exec(compile(open(args[0]).read(), args[0], 'exec'),
                 sys._getframe(1).f_globals,
                 sys._getframe(1).f_locals)
        else:
            execfile(args[0],
                     sys._getframe(1).f_globals,
                     sys._getframe(1).f_locals)
        stop()
        get_func_stats().print_all()
        get_thread_stats().print_all()
    else:
        parser.print_usage()
        sys.exit(2)
示例#4
0
def main():
    from optparse import OptionParser
    import atexit

    usage = "python -m greenlet_profiler [-b] [-s] [scriptfile] args ..."
    parser = OptionParser(usage=usage)
    parser.allow_interspersed_args = False
    parser.add_option(
        "-b", "--builtins",
        action="store_true", dest="profile_builtins",
        default=False,
        help="Profiles builtin functions when set. [default: False]")

    parser.add_option(
        "-s", "--single_thread",
        action="store_true", dest="profile_single_thread",
        default=False,
        help="Profiles only the thread that calls start(). [default: False]")

    parser.add_option(
        "-l", "--log-file",
        dest="log_file",
        default=None,
        help="Log file name")

    clock_types = ['wall', 'cpu']
    parser.add_option(
        "-c", "--clock_type",
        dest="clock_type",
        type='choice',
        choices=clock_types,
        default='cpu',
        help="One of %s" % clock_types)

    options, args = parser.parse_args()

    if len(args) > 0:
        sys.path.insert(0, os.path.dirname(args[0]))
        set_clock_type(options.clock_type)
        start(options.profile_builtins, not options.profile_single_thread)
        atexit.register(cleanup, options)
        if sys.version_info >= (3, 0):
            exec (compile(open(args[0]).read(), args[0], 'exec'),
                  sys._getframe(1).f_globals, sys._getframe(1).f_locals)
        else:
            execfile(args[0], {}, {})
            #execfile(args[0], sys._getframe(1).f_globals,
            #         sys._getframe(1).f_locals)
    else:
        parser.print_usage()
        sys.exit(2)
def main():
    from optparse import OptionParser
    import atexit

    usage = "python -m greenlet_profiler [-b] [-s] [scriptfile] args ..."
    parser = OptionParser(usage=usage)
    parser.allow_interspersed_args = False
    parser.add_option(
        "-b",
        "--builtins",
        action="store_true",
        dest="profile_builtins",
        default=False,
        help="Profiles builtin functions when set. [default: False]")

    parser.add_option(
        "-s",
        "--single_thread",
        action="store_true",
        dest="profile_single_thread",
        default=False,
        help="Profiles only the thread that calls start(). [default: False]")

    parser.add_option("-l",
                      "--log-file",
                      dest="log_file",
                      default=None,
                      help="Log file name")

    parser.add_option(
        "-u",
        "--signals",
        action="store_true",
        dest="use_signals",
        default=False,
        help=
        "Uses the USR1 (start) and USR2 (stop) signals to control when profiling happens. [default: False]"
    )

    clock_types = ['wall', 'cpu']
    parser.add_option("-c",
                      "--clock_type",
                      dest="clock_type",
                      type='choice',
                      choices=clock_types,
                      default='cpu',
                      help="One of %s" % clock_types)

    options, args = parser.parse_args()

    if len(args) > 0:
        sys.path.insert(0, os.path.dirname(args[0]))
        set_clock_type(options.clock_type)
        if options.use_signals:

            def signal_start(signal_number, frame):
                start(options.profile_builtins,
                      not options.profile_single_thread)

            signal.signal(signal.SIGUSR1, signal_start)

            def signal_stop(signal_number, frame):
                cleanup(options)

            signal.signal(signal.SIGUSR2, signal_stop)
        else:
            start(options.profile_builtins, not options.profile_single_thread)
            atexit.register(cleanup, options)
        if sys.version_info >= (3, 0):
            exec(compile(open(args[0]).read(), args[0], 'exec'),
                 sys._getframe(1).f_globals,
                 sys._getframe(1).f_locals)
        else:
            sys.argv = args
            #execfile(args[0], {}, {})
            execfile(args[0],
                     sys._getframe(1).f_globals,
                     sys._getframe(1).f_locals)
    else:
        parser.print_usage()
        sys.exit(2)