Closed jimon closed 8 years ago
Regex? ;)
Somewhat, plus generic python slowness :)
Basic investigation. Quite big input build.fox file :
self.engine.on_build(obj, assigns)
: 1.265sAdded commented out profiler code to master.
Profiling with LLVM (1512 source files)
Full report :
4481478 function calls (4390187 primitive calls) in 2.443 seconds
Ordered by: cumulative time
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 2.443 2.443 C:\work\rnd\buildfox\buildfox.py:279(main)
1 0.001 0.001 2.346 2.346 C:\work\rnd\buildfox\lib_engine.py:60(load)
2/1 0.000 0.000 2.345 2.345 C:\work\rnd\buildfox\lib_parser.py:409(parse)
2/1 0.006 0.003 2.317 2.317 C:\work\rnd\buildfox\lib_parser.py:24(parse)
3664/3649 0.019 0.000 2.261 0.001 C:\work\rnd\buildfox\lib_parser.py:36(parse_line)
3528 0.042 0.000 1.747 0.000 C:\work\rnd\buildfox\lib_engine.py:293(on_build)
14114 0.027 0.000 0.967 0.000 C:\work\rnd\buildfox\lib_engine.py:120(eval_find_files)
14114 0.040 0.000 0.763 0.000 C:\work\rnd\buildfox\lib_util.py:166(find_files)
46851 0.247 0.000 0.646 0.000 C:\Python34\lib\ntpath.py:486(normpath)
14114 0.035 0.000 0.598 0.000 C:\work\rnd\buildfox\lib_util.py:265(<listcomp>)
53624 0.212 0.000 0.451 0.000 C:\Python34\lib\ntpath.py:210(split)
17640 0.053 0.000 0.444 0.000 C:\work\rnd\buildfox\lib_engine.py:127(add_files)
100479 0.201 0.000 0.401 0.000 C:\Python34\lib\ntpath.py:139(splitdrive)
3528 0.047 0.000 0.294 0.000 C:\work\rnd\buildfox\lib_parser.py:105(read_build)
45616 0.065 0.000 0.227 0.000 C:\work\rnd\buildfox\lib_parser.py:304(read_path)
3543 0.010 0.000 0.184 0.000 C:\work\rnd\buildfox\lib_parser.py:247(read_nested_assigns)
73844/28228 0.065 0.000 0.177 0.000 C:\work\rnd\buildfox\lib_engine.py:207(eval_path_transform)
988226 0.161 0.000 0.161 0.000 {built-in method isinstance}
17642 0.022 0.000 0.156 0.000 C:\work\rnd\buildfox\lib_engine.py:222(<listcomp>)
17066 0.112 0.000 0.152 0.000 C:\work\rnd\buildfox\lib_parser.py:352(next_line)
62700 0.150 0.000 0.150 0.000 {method 'match' of '_sre.SRE_Pattern' objects}
13400 0.018 0.000 0.121 0.000 C:\work\rnd\buildfox\lib_parser.py:325(next_nested)
69072 0.073 0.000 0.120 0.000 C:\work\rnd\buildfox\lib_engine.py:86(eval)
64394/18779 0.060 0.000 0.113 0.000 C:\work\rnd\buildfox\lib_engine.py:458(to_esc)
8844 0.017 0.000 0.095 0.000 C:\work\rnd\buildfox\lib_engine.py:467(<listcomp>)
3528 0.033 0.000 0.093 0.000 C:\work\rnd\buildfox\lib_engine.py:239(write_assigns)
7056 0.010 0.000 0.086 0.000 C:\work\rnd\buildfox\lib_engine.py:135(add_generated_files)
189026 0.046 0.000 0.081 0.000 C:\Python34\lib\ntpath.py:59(_get_dot)
403607 0.079 0.000 0.079 0.000 {method 'replace' of 'str' objects}
3528 0.005 0.000 0.076 0.000 C:\work\rnd\buildfox\lib_util.py:262(<listcomp>)
153316 0.038 0.000 0.067 0.000 C:\Python34\lib\ntpath.py:41(_get_sep)
147350 0.036 0.000 0.062 0.000 C:\Python34\lib\ntpath.py:47(_get_altsep)
1 0.008 0.008 0.059 0.059 C:\work\rnd\buildfox\lib_ide_vs.py:89(gen_vs)
313126 0.050 0.000 0.050 0.000 {method 'startswith' of 'str' objects}
9857 0.008 0.000 0.050 0.000 C:\work\rnd\buildfox\lib_parser.py:253(read_nested_assign)
100479 0.026 0.000 0.044 0.000 C:\Python34\lib\ntpath.py:65(_get_colon)
45616 0.031 0.000 0.043 0.000 C:\work\rnd\buildfox\lib_util.py:25(wildcard_regex)
17064 0.026 0.000 0.042 0.000 C:\work\rnd\buildfox\lib_parser.py:276(read_identifier)
100479 0.024 0.000 0.042 0.000 C:\Python34\lib\ntpath.py:35(_get_empty)
4006 0.002 0.000 0.038 0.000 C:\Python34\lib\ntpath.py:251(dirname)
4 0.008 0.002 0.037 0.009 {method 'write' of '_io.TextIOWrapper' objects}
4004 0.002 0.000 0.037 0.000 C:\Python34\lib\ntpath.py:244(basename)
1 0.000 0.000 0.036 0.036 C:\work\rnd\buildfox\lib_engine.py:79(save)
69191 0.031 0.000 0.031 0.000 {method 'sub' of '_sre.SRE_Pattern' objects}
463125/463116 0.030 0.000 0.030 0.000 {built-in method len}
9935 0.009 0.000 0.029 0.000 C:\work\rnd\buildfox\lib_engine.py:224(eval_transform)
4 0.000 0.000 0.029 0.007 C:\Python34\lib\encodings\cp1252.py:18(encode)
4 0.029 0.007 0.029 0.007 {built-in method charmap_encode}
2 0.000 0.000 0.028 0.014 C:\work\rnd\buildfox\lib_parser.py:11(__init__)
1231 0.001 0.000 0.025 0.000 C:\Python34\lib\ntpath.py:542(abspath)
53624 0.014 0.000 0.024 0.000 C:\Python34\lib\ntpath.py:53(_get_bothseps)
46851 0.012 0.000 0.020 0.000 C:\Python34\lib\ntpath.py:71(_get_special)
9976 0.011 0.000 0.020 0.000 C:\work\rnd\buildfox\lib_parser.py:259(read_assign_op)
109955 0.020 0.000 0.020 0.000 {method 'strip' of 'str' objects}
47047 0.018 0.000 0.018 0.000 {method 'split' of 'str' objects}
17062 0.017 0.000 0.017 0.000 {method 'index' of 'str' objects}
2 0.008 0.004 0.016 0.008 {method 'read' of '_io.TextIOWrapper' objects}
129301 0.015 0.000 0.015 0.000 {method 'append' of 'list' objects}
55728 0.013 0.000 0.013 0.000 {method 'join' of 'str' objects}
50768 0.012 0.000 0.012 0.000 {method 'add' of 'set' objects}
21036 0.009 0.000 0.012 0.000 C:\work\rnd\buildfox\lib_parser.py:287(expect_token)
2 0.012 0.006 0.012 0.006 {method 'splitlines' of 'str' objects}
49235 0.010 0.000 0.010 0.000 {method 'endswith' of 'str' objects}
63952 0.009 0.000 0.009 0.000 {method 'group' of '_sre.SRE_Match' objects}
2 0.000 0.000 0.008 0.004 C:\Python34\lib\encodings\cp1252.py:22(decode)
2 0.008 0.004 0.008 0.004 {built-in method charmap_decode}
62680 0.006 0.000 0.006 0.000 {method 'span' of '_sre.SRE_Match' objects}
213 0.001 0.000 0.006 0.000 C:\Python34\lib\uuid.py:614(uuid5)
6 0.005 0.001 0.005 0.001 {built-in method open}
27118 0.005 0.000 0.005 0.000 {method 'get' of 'dict' objects}
5736 0.002 0.000 0.004 0.000 C:\work\rnd\buildfox\lib_ide_vs.py:94(<lambda>)
1 0.000 0.000 0.004 0.004 C:\work\rnd\buildfox\lib_ide_vs.py:110(<listcomp>)
5736 0.002 0.000 0.004 0.000 C:\work\rnd\buildfox\lib_ide_vs.py:95(<lambda>)
2/1 0.000 0.000 0.003 0.003 <frozen importlib._bootstrap>:2234(_find_and_load)
2/1 0.000 0.000 0.003 0.003 <frozen importlib._bootstrap>:2207(_find_and_load_unlocked)
4120 0.002 0.000 0.002 0.000 C:\work\rnd\buildfox\lib_engine.py:260(on_comment)
1 0.000 0.000 0.002 0.002 C:\work\rnd\buildfox\lib_engine.py:429(on_include)
213 0.001 0.000 0.002 0.000 C:\Python34\lib\uuid.py:235(bytes)
2/1 0.000 0.000 0.002 0.002 <frozen importlib._bootstrap>:1186(_load_unlocked)
1 0.000 0.000 0.002 0.002 C:\work\rnd\buildfox\lib_engine.py:76(text)
9935 0.002 0.000 0.002 0.000 C:\work\rnd\buildfox\lib_engine.py:196(eval_assign_op)
1 0.000 0.000 0.002 0.002 <frozen importlib._bootstrap>:1122(_exec)
1 0.000 0.000 0.002 0.002 <frozen importlib._bootstrap>:1465(exec_module)
1421 0.002 0.000 0.002 0.000 C:\work\rnd\buildfox\lib_engine.py:257(on_empty_lines)
2/1 0.000 0.000 0.002 0.002 <frozen importlib._bootstrap>:313(_call_with_frames_removed)
1 0.000 0.000 0.002 0.002 {built-in method exec}
1 0.000 0.000 0.002 0.002 C:\Python34\lib\hashlib.py:53(<module>)
1 0.000 0.000 0.001 0.001 <frozen importlib._bootstrap>:1156(_load_backward_compatible)
2 0.000 0.000 0.001 0.001 <frozen importlib._bootstrap>:534(_check_name_wrapper)
1 0.000 0.000 0.001 0.001 <frozen importlib._bootstrap>:1708(load_module)
1 0.001 0.001 0.001 0.001 {built-in method load_dynamic}
11708 0.001 0.000 0.001 0.000 {method 'lower' of 'str' objects}
121 0.000 0.000 0.001 0.000 C:\work\rnd\buildfox\lib_engine.py:408(on_assign)
1231 0.001 0.000 0.001 0.000 {built-in method _getfullpathname}
214 0.001 0.000 0.001 0.000 C:\Python34\lib\uuid.py:104(__init__)
1 0.000 0.000 0.001 0.001 C:\Python34\lib\argparse.py:1600(__init__)
31 0.000 0.000 0.001 0.000 C:\Python34\lib\re.py:277(_compile)
2 0.000 0.000 0.001 0.000 <frozen importlib._bootstrap>:2147(_find_spec)
3545 0.001 0.000 0.001 0.000 C:\work\rnd\buildfox\lib_parser.py:315(read_eol)
6 0.000 0.000 0.001 0.000 C:\Python34\lib\sre_compile.py:563(compile)
11 0.000 0.000 0.001 0.000 C:\Python34\lib\argparse.py:1304(add_argument)
2 0.000 0.000 0.001 0.000 <frozen importlib._bootstrap>:1934(find_spec)
2 0.000 0.000 0.001 0.000 <frozen importlib._bootstrap>:1902(_get_spec)
1 0.001 0.001 0.001 0.001 C:\work\rnd\buildfox\lib_ide_vs.py:103(<listcomp>)
5 0.000 0.000 0.001 0.000 <frozen importlib._bootstrap>:2016(find_spec)
25 0.000 0.000 0.001 0.000 C:\Python34\lib\re.py:221(compile)
3408 0.001 0.000 0.001 0.000 {method 'insert' of 'bytearray' objects}
2269 0.000 0.000 0.000 0.000 {method 'lstrip' of 'str' objects}
1 0.000 0.000 0.000 0.000 C:\Python34\lib\argparse.py:1727(parse_args)
8 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:68(_path_stat)
1 0.000 0.000 0.000 0.000 C:\Python34\lib\argparse.py:1734(parse_known_args)
8 0.000 0.000 0.000 0.000 {built-in method stat}
1 0.000 0.000 0.000 0.000 C:\Python34\lib\argparse.py:1769(_parse_known_args)
3 0.000 0.000 0.000 0.000 C:\Python34\lib\argparse.py:1223(__init__)
6 0.000 0.000 0.000 0.000 C:\Python34\lib\sre_parse.py:750(parse)
214 0.000 0.000 0.000 0.000 C:\Python34\lib\uuid.py:230(__str__)
2 0.000 0.000 0.000 0.000 C:\work\rnd\buildfox\lib_util.py:17(rel_dir)
11 0.000 0.000 0.000 0.000 C:\Python34\lib\argparse.py:2345(_get_formatter)
910 0.000 0.000 0.000 0.000 C:\work\rnd\buildfox\lib_engine.py:94(repl_escaped)
9/6 0.000 0.000 0.000 0.000 C:\Python34\lib\sre_parse.py:363(_parse_sub)
11 0.000 0.000 0.000 0.000 C:\Python34\lib\argparse.py:151(__init__)
6 0.000 0.000 0.000 0.000 C:\Python34\lib\sre_compile.py:548(_code)
119 0.000 0.000 0.000 0.000 C:\work\rnd\buildfox\lib_parser.py:242(read_assign)
1427 0.000 0.000 0.000 0.000 {method 'extend' of 'list' objects}
10/7 0.000 0.000 0.000 0.000 C:\Python34\lib\sre_parse.py:441(_parse)
6 0.000 0.000 0.000 0.000 C:\Python34\lib\re.py:157(match)
1 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:1534(get_code)
2 0.000 0.000 0.000 0.000 C:\Python34\lib\ntpath.py:562(relpath)
5 0.000 0.000 0.000 0.000 C:\Python34\lib\argparse.py:1837(consume_optional)
119 0.000 0.000 0.000 0.000 C:\work\rnd\buildfox\lib_engine.py:99(repl)
15 0.000 0.000 0.000 0.000 C:\work\rnd\buildfox\lib_engine.py:263(on_rule)
214 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:2264(_handle_fromlist)
5 0.000 0.000 0.000 0.000 C:\Python34\lib\argparse.py:2044(_match_argument)
18/6 0.000 0.000 0.000 0.000 C:\Python34\lib\sre_compile.py:70(_compile)
1 0.000 0.000 0.000 0.000 C:\Python34\lib\argparse.py:1914(consume_positionals)
1 0.000 0.000 0.000 0.000 C:\Python34\lib\argparse.py:2065(_match_arguments_partial)
216 0.000 0.000 0.000 0.000 {built-in method from_bytes}
247 0.000 0.000 0.000 0.000 {built-in method hasattr}
2 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:1423(find_spec)
2 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:1408(_search_registry)
213 0.000 0.000 0.000 0.000 {method 'digest' of '_hashlib.HASH' objects}
6 0.000 0.000 0.000 0.000 C:\Python34\lib\sre_compile.py:444(_compile_info)
2 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:1401(_open_registry)
4 0.000 0.000 0.000 0.000 {built-in method OpenKey}
1 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:1621(get_data)
214 0.000 0.000 0.000 0.000 {built-in method openssl_sha1}
3 0.000 0.000 0.000 0.000 C:\Python34\lib\gettext.py:497(gettext)
3 0.000 0.000 0.000 0.000 C:\Python34\lib\gettext.py:459(dgettext)
2 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:87(_path_isfile)
2 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:78(_path_is_mode_type)
3 0.000 0.000 0.000 0.000 C:\Python34\lib\gettext.py:393(translation)
3 0.000 0.000 0.000 0.000 C:\Python34\lib\gettext.py:353(find)
11 0.000 0.000 0.000 0.000 C:\Python34\lib\argparse.py:1707(_add_action)
52 0.000 0.000 0.000 0.000 C:\Python34\lib\sre_parse.py:195(__next)
41 0.000 0.000 0.000 0.000 C:\Python34\lib\sre_parse.py:220(get)
25/13 0.000 0.000 0.000 0.000 C:\Python34\lib\sre_parse.py:152(getwidth)
11 0.000 0.000 0.000 0.000 C:\Python34\lib\argparse.py:1552(_add_action)
2 0.000 0.000 0.000 0.000 C:\Python34\lib\shlex.py:271(split)
1 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:654(_compile_bytecode)
23 0.000 0.000 0.000 0.000 C:\Python34\lib\os.py:628(__getitem__)
63 0.000 0.000 0.000 0.000 C:\Python34\lib\sre_parse.py:142(__getitem__)
17 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:50(_path_join)
1 0.000 0.000 0.000 0.000 C:\work\rnd\buildfox\lib_util.py:315(cxx_defines)
6 0.000 0.000 0.000 0.000 C:\Python34\lib\argparse.py:1816(take_action)
1 0.000 0.000 0.000 0.000 C:\work\rnd\buildfox\lib_ide_vs.py:101(<listcomp>)
20 0.000 0.000 0.000 0.000 C:\Python34\lib\ntpath.py:81(normcase)
1 0.000 0.000 0.000 0.000 {built-in method loads}
2 0.000 0.000 0.000 0.000 C:\Python34\lib\argparse.py:1351(add_argument_group)
15 0.000 0.000 0.000 0.000 C:\work\rnd\buildfox\lib_parser.py:100(read_rule)
11 0.000 0.000 0.000 0.000 C:\Python34\lib\argparse.py:1361(_add_action)
6 0.000 0.000 0.000 0.000 C:\Python34\lib\_bootlocale.py:11(getpreferredencoding)
2 0.000 0.000 0.000 0.000 C:\Python34\lib\argparse.py:1530(__init__)
1 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:1631(path_stats)
10 0.000 0.000 0.000 0.000 C:\Python34\lib\argparse.py:1441(_get_optional_kwargs)
11 0.000 0.000 0.000 0.000 C:\Python34\lib\argparse.py:572(_format_args)
1 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:1099(create)
12 0.000 0.000 0.000 0.000 C:\Python34\lib\_collections_abc.py:419(get)
5 0.000 0.000 0.000 0.000 C:\Python34\lib\sre_compile.py:227(_compile_charset)
2 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:261(__enter__)
1 0.000 0.000 0.000 0.000 C:\work\rnd\buildfox\lib_engine.py:382(on_default)
2 0.000 0.000 0.000 0.000 C:\work\rnd\buildfox\lib_engine.py:254(write_rel_path)
6 0.000 0.000 0.000 0.000 {built-in method _getdefaultlocale}
1 0.000 0.000 0.000 0.000 {method 'read' of '_io.FileIO' objects}
1 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:1019(init_module_attrs)
6 0.000 0.000 0.000 0.000 C:\Python34\lib\argparse.py:2227(_get_values)
214 0.000 0.000 0.000 0.000 {method 'count' of 'list' objects}
2 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:437(cache_from_source)
17 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:52(<listcomp>)
23 0.000 0.000 0.000 0.000 C:\Python34\lib\os.py:696(encodekey)
2 0.000 0.000 0.000 0.000 C:\Python34\lib\shlex.py:20(__init__)
5 0.000 0.000 0.000 0.000 C:\Python34\lib\sre_compile.py:255(_optimize_charset)
34 0.000 0.000 0.000 0.000 C:\Python34\lib\argparse.py:1275(register)
2 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:274(_get_module_lock)
6 0.000 0.000 0.000 0.000 C:\Python34\lib\sre_parse.py:190(__init__)
1 0.000 0.000 0.000 0.000 C:\Python34\lib\uuid.py:596(uuid4)
17 0.000 0.000 0.000 0.000 {method 'format' of 'str' objects}
3 0.000 0.000 0.000 0.000 C:\Python34\lib\gettext.py:111(_expand_lang)
55 0.000 0.000 0.000 0.000 {built-in method min}
11 0.000 0.000 0.000 0.000 C:\Python34\lib\argparse.py:785(__init__)
2 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:824(cached)
2 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:2011(_get_spec)
1 0.000 0.000 0.000 0.000 C:\Python34\lib\genericpath.py:69(commonprefix)
11 0.000 0.000 0.000 0.000 C:\Python34\lib\argparse.py:1477(_pop_action_class)
26 0.000 0.000 0.000 0.000 C:\Python34\lib\argparse.py:1279(_registry_get)
3 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:56(_path_split)
2 0.000 0.000 0.000 0.000 C:\Python34\lib\shlex.py:265(__next__)
7 0.000 0.000 0.000 0.000 C:\Python34\lib\sre_compile.py:418(_simple)
6 0.000 0.000 0.000 0.000 C:\Python34\lib\hashlib.py:98(__get_openssl_constructor)
23 0.000 0.000 0.000 0.000 C:\Python34\lib\sre_parse.py:150(append)
6 0.000 0.000 0.000 0.000 C:\Python34\lib\argparse.py:827(__init__)
2 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:172(__init__)
1 0.000 0.000 0.000 0.000 C:\work\rnd\buildfox\lib_util.py:322(cxx_includedirs)
6 0.000 0.000 0.000 0.000 C:\Python34\lib\argparse.py:2183(_get_nargs_pattern)
28 0.000 0.000 0.000 0.000 C:\Python34\lib\sre_parse.py:214(match)
4 0.000 0.000 0.000 0.000 C:\Python34\lib\argparse.py:862(__init__)
7 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:1870(_path_importer_cache)
2 0.000 0.000 0.000 0.000 C:\Python34\lib\shlex.py:85(get_token)
1 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:599(_validate_bytecode_header)
4 0.000 0.000 0.000 0.000 C:\Python34\lib\argparse.py:2279(_get_value)
8 0.000 0.000 0.000 0.000 C:\Python34\lib\sre_parse.py:307(_escape)
18 0.000 0.000 0.000 0.000 C:\Python34\lib\sre_parse.py:90(__init__)
1 0.000 0.000 0.000 0.000 C:\work\rnd\buildfox\lib_parser.py:171(read_include)
23 0.000 0.000 0.000 0.000 C:\Python34\lib\os.py:690(check_str)
1 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:1726(is_package)
1 0.000 0.000 0.000 0.000 {built-in method urandom}
1 0.000 0.000 0.000 0.000 C:\work\rnd\buildfox\lib_parser.py:177(read_one_path)
29 0.000 0.000 0.000 0.000 C:\Python34\lib\sre_parse.py:138(__len__)
11 0.000 0.000 0.000 0.000 C:\Python34\lib\argparse.py:565(format)
15 0.000 0.000 0.000 0.000 {built-in method max}
2 0.000 0.000 0.000 0.000 C:\Python34\lib\shlex.py:117(read_token)
2 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:1266(find_spec)
1 0.000 0.000 0.000 0.000 C:\work\rnd\buildfox\lib_engine.py:35(__init__)
2 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:884(spec_from_file_location)
2 0.000 0.000 0.000 0.000 C:\Python34\lib\argparse.py:902(__init__)
2 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:268(__exit__)
2 0.000 0.000 0.000 0.000 C:\Python34\lib\argparse.py:885(__init__)
2 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:192(acquire)
18 0.000 0.000 0.000 0.000 {built-in method getattr}
19 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:518(_verbose_message)
12 0.000 0.000 0.000 0.000 C:\Python34\lib\sre_compile.py:545(isstring)
36 0.000 0.000 0.000 0.000 {method 'rstrip' of 'str' objects}
4 0.000 0.000 0.000 0.000 {built-in method allocate_lock}
3 0.000 0.000 0.000 0.000 C:\Python34\lib\argparse.py:1481(_get_handler)
2 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:217(release)
1 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:147(__exit__)
8 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:2120(__enter__)
6 0.000 0.000 0.000 0.000 {built-in method compile}
3 0.000 0.000 0.000 0.000 {built-in method any}
11 0.000 0.000 0.000 0.000 C:\Python34\lib\argparse.py:196(__init__)
2 0.000 0.000 0.000 0.000 {built-in method is_builtin}
1 0.000 0.000 0.000 0.000 C:\work\rnd\buildfox\lib_parser.py:158(read_default)
6 0.000 0.000 0.000 0.000 C:\Python34\lib\sre_parse.py:738(fix_flags)
6 0.000 0.000 0.000 0.000 C:\Python34\lib\sre_parse.py:67(__init__)
3 0.000 0.000 0.000 0.000 C:\Python34\lib\locale.py:373(normalize)
11 0.000 0.000 0.000 0.000 C:\Python34\lib\argparse.py:556(_metavar_formatter)
1 0.000 0.000 0.000 0.000 C:\Python34\lib\argparse.py:1003(__init__)
3 0.000 0.000 0.000 0.000 {method 'rsplit' of 'str' objects}
11 0.000 0.000 0.000 0.000 C:\Python34\lib\argparse.py:1490(_check_conflict)
1 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:739(__exit__)
2 0.000 0.000 0.000 0.000 {built-in method getcwd}
17 0.000 0.000 0.000 0.000 {built-in method setattr}
40 0.000 0.000 0.000 0.000 {method 'setdefault' of 'dict' objects}
8 0.000 0.000 0.000 0.000 C:\Python34\lib\argparse.py:2081(_parse_optional)
8 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:2124(__exit__)
2 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:45(_r_long)
2 0.000 0.000 0.000 0.000 C:\Python34\lib\sre_compile.py:423(_generate_overlap_table)
4 0.000 0.000 0.000 0.000 C:\Python34\lib\codecs.py:183(__init__)
21 0.000 0.000 0.000 0.000 {method 'pop' of 'dict' objects}
3 0.000 0.000 0.000 0.000 C:\Python34\lib\sre_parse.py:83(closegroup)
1 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:129(_new_module)
5 0.000 0.000 0.000 0.000 C:\Python34\lib\argparse.py:1944(<listcomp>)
11 0.000 0.000 0.000 0.000 {method 'rpartition' of 'str' objects}
9 0.000 0.000 0.000 0.000 {method 'find' of 'bytearray' objects}
24 0.000 0.000 0.000 0.000 {method 'upper' of 'str' objects}
5 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:30(_relax_case)
2 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:1336(find_spec)
3 0.000 0.000 0.000 0.000 C:\Python34\lib\sre_parse.py:72(opengroup)
4 0.000 0.000 0.000 0.000 C:\Python34\lib\argparse.py:856(__call__)
1 0.000 0.000 0.000 0.000 C:\Python34\lib\argparse.py:1719(_get_positional_actions)
1 0.000 0.000 0.000 0.000 C:\Python34\lib\argparse.py:1425(_get_positional_kwargs)
2 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:257(__init__)
1 0.000 0.000 0.000 0.000 C:\work\rnd\buildfox\lib_engine.py:27(__init__)
7 0.000 0.000 0.000 0.000 C:\Python34\lib\sre_parse.py:146(__setitem__)
10 0.000 0.000 0.000 0.000 {method 'items' of 'dict' objects}
2 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:790(__init__)
1 0.000 0.000 0.000 0.000 {method 'union' of 'set' objects}
9 0.000 0.000 0.000 0.000 {method 'remove' of 'list' objects}
9 0.000 0.000 0.000 0.000 {method 'find' of 'str' objects}
2 0.000 0.000 0.000 0.000 {method 'read' of '_io.StringIO' objects}
1 0.000 0.000 0.000 0.000 C:\Python34\lib\argparse.py:2071(<listcomp>)
2 0.000 0.000 0.000 0.000 C:\Python34\lib\ntpath.py:581(<listcomp>)
4 0.000 0.000 0.000 0.000 C:\Python34\lib\sre_parse.py:140(__delitem__)
1 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:842(parent)
10 0.000 0.000 0.000 0.000 {built-in method release_lock}
4 0.000 0.000 0.000 0.000 C:\Python34\lib\argparse.py:2305(_check_value)
2 0.000 0.000 0.000 0.000 C:\Python34\lib\argparse.py:879(__call__)
2 0.000 0.000 0.000 0.000 C:\Python34\lib\codecs.py:257(__init__)
1 0.000 0.000 0.000 0.000 C:\Python34\lib\argparse.py:1720(<listcomp>)
4 0.000 0.000 0.000 0.000 C:\Python34\lib\argparse.py:1636(identity)
2 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:1000(__init__)
1 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:1591(__init__)
1 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:1697(__init__)
2 0.000 0.000 0.000 0.000 C:\Python34\lib\ntpath.py:582(<listcomp>)
4 0.000 0.000 0.000 0.000 {built-in method get_ident}
2 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:1729(<genexpr>)
1 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:728(__init__)
4 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:148(<genexpr>)
1 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:144(__enter__)
1 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:141(__init__)
2 0.000 0.000 0.000 0.000 C:\Python34\lib\argparse.py:2272(<listcomp>)
1 0.000 0.000 0.000 0.000 {built-in method vars}
8 0.000 0.000 0.000 0.000 {built-in method acquire_lock}
1 0.000 0.000 0.000 0.000 C:\Python34\lib\argparse.py:2075(<listcomp>)
1 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:732(__enter__)
2 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:288(cb)
1 0.000 0.000 0.000 0.000 {built-in method _fix_co_filename}
2 0.000 0.000 0.000 0.000 {built-in method is_frozen}
1 0.000 0.000 0.000 0.000 {built-in method openssl_md5}
2 0.000 0.000 0.000 0.000 C:\Python34\lib\shlex.py:262(__iter__)
7 0.000 0.000 0.000 0.000 {built-in method ord}
1 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:850(has_location)
1 0.000 0.000 0.000 0.000 {built-in method openssl_sha384}
1 0.000 0.000 0.000 0.000 {built-in method openssl_sha224}
4 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:742(<genexpr>)
1 0.000 0.000 0.000 0.000 C:\Python34\lib\argparse.py:1203(__init__)
1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}
6 0.000 0.000 0.000 0.000 {built-in method globals}
5 0.000 0.000 0.000 0.000 C:\Python34\lib\argparse.py:587(<listcomp>)
1 0.000 0.000 0.000 0.000 {built-in method openssl_sha512}
1 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:1616(get_filename)
1 0.000 0.000 0.000 0.000 {built-in method openssl_sha256}
1 0.000 0.000 0.000 0.000 {built-in method iter}
1 0.000 0.000 0.000 0.000 C:\work\rnd\buildfox\lib_util.py:317(<listcomp>)
1 0.000 0.000 0.000 0.000 {method 'groups' of '_sre.SRE_Match' objects}
2 0.000 0.000 0.000 0.000 {method 'keys' of 'dict' objects}
1 0.000 0.000 0.000 0.000 C:\work\rnd\buildfox\lib_util.py:324(<listcomp>)
3 0.000 0.000 0.000 0.000 {method 'reverse' of 'list' objects}
26 0.000 0.000 0.000 0.000 {built-in method callable}
Latest check : ~2 seconds on llvm codebase on i7 3770, which is ok imho
Looks like our parsing/engine performance is not that good. This ticket also means to came up with performance test.
For now it's possible to parse something like build.ninja from llvm project (if you generate it with cmake).