On 23 Nov 2015 07:07, Mike Frysinger wrote:
> When things get slow, this option helps narrow down where things
> are getting hung up.

example output (although not as interesting since it's not a full run):
$ ./bin/catalyst.git --profile
usage: catalyst [-h] [-V] [-d] [-v]
                [--log-level {critical,error,warning,notice,info,debug}]
                [--log-file LOG_FILE] [--color] [--nocolor] [--trace]
                [--profile] [-a] [-p] [-P] [-T] [-F] [-c CONFIGS] [-f FILE]
                [-s SNAPSHOT] [-C ...]
catalyst: error: please specify one of either -f or -C or -s

         2133 function calls (2090 primitive calls) in 0.002 seconds

   Ordered by: internal time

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        6    0.000    0.000    0.001    0.000 
argparse.py:384(_format_actions_usage)
     10/7    0.000    0.000    0.000    0.000 sre_parse.py:395(_parse)
        4    0.000    0.000    0.000    0.000 argparse.py:336(get_lines)
       25    0.000    0.000    0.000    0.000 {method 'sub' of 
'_sre.SRE_Pattern' objects}
     18/5    0.000    0.000    0.000    0.000 sre_compile.py:64(_compile)
       30    0.000    0.000    0.001    0.000 re.py:230(_compile)
        3    0.000    0.000    0.000    0.000 gettext.py:424(find)
       73    0.000    0.000    0.000    0.000 sre_parse.py:193(__next)
    25/12    0.000    0.000    0.000    0.000 sre_parse.py:151(getwidth)
        2    0.000    0.000    0.002    0.001 argparse.py:292(_format_usage)
        6    0.000    0.000    0.000    0.000 gettext.py:132(_expand_lang)
      430    0.000    0.000    0.000    0.000 {method 'append' of 'list' 
objects}
        5    0.000    0.000    0.000    0.000 sre_compile.py:433(_compile_info)
       67    0.000    0.000    0.000    0.000 sre_parse.py:141(__getitem__)
       12    0.000    0.000    0.000    0.000 posixpath.py:61(join)
  399/388    0.000    0.000    0.000    0.000 {len}
      113    0.000    0.000    0.000    0.000 {isinstance}
        6    0.000    0.000    0.000    0.000 
sre_compile.py:256(_optimize_charset)
       24    0.000    0.000    0.000    0.000 argparse.py:573(_format_args)
       12    0.000    0.000    0.000    0.000 {posix.stat}
       57    0.000    0.000    0.000    0.000 sre_parse.py:212(get)
       12    0.000    0.000    0.000    0.000 genericpath.py:23(exists)
       24    0.000    0.000    0.000    0.000 
argparse.py:557(_metavar_formatter)
      8/5    0.000    0.000    0.000    0.000 sre_parse.py:317(_parse_sub)
       61    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
        4    0.000    0.000    0.000    0.000 {method 'findall' of 
'_sre.SRE_Pattern' objects}
        3    0.000    0.000    0.000    0.000 sre_parse.py:734(parse_template)
        5    0.000    0.000    0.000    0.000 sre_parse.py:706(parse)
       24    0.000    0.000    0.001    0.000 re.py:148(sub)
        5    0.000    0.000    0.001    0.000 sre_compile.py:567(compile)
       18    0.000    0.000    0.000    0.000 re.py:264(_compile_repl)
        6    0.000    0.000    0.000    0.000 
sre_compile.py:228(_compile_charset)
        2    0.000    0.000    0.000    0.000 {method 'write' of 'file' objects}
        1    0.000    0.000    0.000    0.000 log.py:105(setup_logging)
       38    0.000    0.000    0.000    0.000 sre_parse.py:137(__len__)
        6    0.000    0.000    0.000    0.000 locale.py:363(normalize)
        6    0.000    0.000    0.000    0.000 {sorted}
        5    0.000    0.000    0.000    0.000 sre_compile.py:552(_code)
        1    0.000    0.000    0.000    0.000 argparse.py:154(__init__)
       20    0.000    0.000    0.000    0.000 argparse.py:566(format)
       40    0.000    0.000    0.000    0.000 sre_parse.py:206(match)
       18    0.000    0.000    0.000    0.000 sre_parse.py:92(__init__)
       18    0.000    0.000    0.000    0.000 re.py:284(_subx)
        1    0.000    0.000    0.002    0.002 argparse.py:205(format_help)
       40    0.000    0.000    0.000    0.000 {min}
        7    0.000    0.000    0.000    0.000 sre_compile.py:428(_simple)
        1    0.000    0.000    0.002    0.002 main.py:281(_main)
        1    0.000    0.000    0.000    0.000 {time.localtime}
       29    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
        3    0.000    0.000    0.000    0.000 gettext.py:530(dgettext)
       12    0.000    0.000    0.000    0.000 UserDict.py:58(get)
       26    0.000    0.000    0.000    0.000 {method 'find' of 'bytearray' 
objects}
        3    0.000    0.000    0.000    0.000 locale.py:347(_replace_encoding)
        3    0.000    0.000    0.000    0.000 gettext.py:464(translation)
        7    0.000    0.000    0.000    0.000 sre_parse.py:268(_escape)
        4    0.000    0.000    0.000    0.000 re.py:173(findall)
       25    0.000    0.000    0.000    0.000 {method 'upper' of 'str' objects}
       10    0.000    0.000    0.000    0.000 sre_compile.py:546(isstring)
        4    0.000    0.000    0.000    0.000 sre_parse.py:236(_class_escape)
        1    0.000    0.000    0.000    0.000 {time.strftime}
       21    0.000    0.000    0.000    0.000 sre_parse.py:149(append)
        1    0.000    0.000    0.000    0.000 __init__.py:644(_addHandlerRef)
       18    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
        3    0.000    0.000    0.000    0.000 __init__.py:49(normalize_encoding)
        9    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
        5    0.000    0.000    0.000    0.000 {_sre.compile}
        2    0.000    0.000    0.000    0.000 threading.py:147(acquire)
        8    0.000    0.000    0.000    0.000 sre_parse.py:189(__init__)
       36    0.000    0.000    0.000    0.000 {method 'endswith' of 'str' 
objects}
       36    0.000    0.000    0.000    0.000 {method 'startswith' of 'str' 
objects}
        3    0.000    0.000    0.000    0.000 sre_parse.py:85(closegroup)
        1    0.000    0.000    0.000    0.000 log.py:81(__init__)
        3    0.000    0.000    0.000    0.000 gettext.py:568(gettext)
        1    0.000    0.000    0.000    0.000 __init__.py:154(getLevelName)
        1    0.000    0.000    0.000    0.000 __init__.py:825(__init__)
        9    0.000    0.000    0.000    0.000 {method 'translate' of 'str' 
objects}
       12    0.000    0.000    0.000    0.000 UserDict.py:70(__contains__)
        1    0.000    0.000    0.002    0.002 argparse.py:2364(error)
        2    0.000    0.000    0.000    0.000 __init__.py:183(_checkLevel)
        1    0.000    0.000    0.000    0.000 argparse.py:250(add_usage)
        1    0.000    0.000    0.000    0.000 log.py:74(detect_color)
        5    0.000    0.000    0.000    0.000 sre_parse.py:67(__init__)
        1    0.000    0.000    0.000    0.000 threading.py:132(__init__)
        7    0.000    0.000    0.000    0.000 {method 'strip' of 'str' objects}
        1    0.000    0.000    0.000    0.000 argparse.py:2326(_get_formatter)
        4    0.000    0.000    0.000    0.000 UserDict.py:18(__getitem__)
        2    0.000    0.000    0.000    0.000 argparse.py:2350(_print_message)
        1    0.000    0.000    0.000    0.000 __init__.py:663(__init__)
        1    0.000    0.000    0.002    0.002 argparse.py:2332(print_usage)
        4    0.000    0.000    0.000    0.000 {hasattr}
        1    0.000    0.000    0.000    0.000 __init__.py:692(createLock)
        2    0.000    0.000    0.000    0.000 threading.py:187(release)
        2    0.000    0.000    0.000    0.000 re.py:192(compile)
        1    0.000    0.000    0.002    0.002 argparse.py:2287(format_usage)
        3    0.000    0.000    0.000    0.000 sre_parse.py:74(opengroup)
        2    0.000    0.000    0.000    0.000 argparse.py:287(_join_parts)
        6    0.000    0.000    0.000    0.000 {method 'replace' of 'str' 
objects}
       18    0.000    0.000    0.000    0.000 {ord}
        1    0.000    0.000    0.002    0.002 argparse.py:280(format_help)
        3    0.000    0.000    0.000    0.000 {method 'index' of 'str' objects}
        2    0.000    0.000    0.000    0.000 {method 'acquire' of 
'thread.lock' objects}
        1    0.000    0.000    0.000    0.000 {posix.isatty}
        6    0.000    0.000    0.000    0.000 {method 'reverse' of 'list' 
objects}
        1    0.000    0.000    0.000    0.000 {method 'fileno' of 'file' 
objects}
        1    0.000    0.000    0.000    0.000 argparse.py:199(__init__)
        6    0.000    0.000    0.000    0.000 {method 'extend' of 'list' 
objects}
        1    0.000    0.000    0.000    0.000 threading.py:114(RLock)
        2    0.000    0.000    0.000    0.000 __init__.py:220(_releaseLock)
        4    0.000    0.000    0.000    0.000 {max}
        1    0.000    0.000    0.000    0.000 __init__.py:585(__init__)
        7    0.000    0.000    0.000    0.000 sre_parse.py:145(__setitem__)
        1    0.000    0.000    0.000    0.000 __init__.py:1137(setLevel)
        1    0.000    0.000    0.000    0.000 argparse.py:2359(exit)
        1    0.000    0.000    0.000    0.000 {sys.exit}
        1    0.000    0.000    0.000    0.000 __init__.py:397(__init__)
        2    0.000    0.000    0.000    0.000 {method 'release' of 
'thread.lock' objects}
        1    0.000    0.000    0.000    0.000 __init__.py:762(setFormatter)
        2    0.000    0.000    0.000    0.000 __init__.py:211(_acquireLock)
        1    0.000    0.000    0.000    0.000 __init__.py:1296(addHandler)
        6    0.000    0.000    0.000    0.000 {range}
        1    0.000    0.000    0.000    0.000 {method 'pop' of 'dict' objects}
        4    0.000    0.000    0.000    0.000 {thread.get_ident}
        5    0.000    0.000    0.000    0.000 {method 'items' of 'dict' objects}
        1    0.000    0.000    0.000    0.000 argparse.py:230(_add_item)
        1    0.000    0.000    0.000    0.000 {thread.allocate_lock}
        3    0.000    0.000    0.000    0.000 {method 'remove' of 'list' 
objects}
        1    0.000    0.000    0.000    0.000 threading.py:80(__init__)
        1    0.000    0.000    0.000    0.000 {method 'disable' of 
'_lsprof.Profiler' objects}
-mike

Attachment: signature.asc
Description: Digital signature

Reply via email to