2016-07-06 2 views
0

나는 컴퓨터 과학자 아니다 나는프로파일 링 결과를 해석하는 방법은 무엇입니까?

모두가 프로파일 말해 유지 (Implementing Pool on a for loop with a lot of inputs, Multiprocessing pool example (parallel) is slower than sequential. Trying to understand pool in python, Returning lists of instances makes no difference? And what about performance?) 내 에이전트 기반 모델은 합리적으로 빨리 만들려고 힘든 시간을 보내고있다. 나는 또 하나의 샷을 주었지만 결과를 해석하는 방법을 모른다 (timeit). 어떤 함수가 더 느린지는 알고 있지만 Pool이나 @jit을 사용할 수 없었다.

아래 결과가 나타나면 어떻게해야합니까? 감사합니다. 당신은 분석에 사용할 수있는 도구를 사용할 수도 있습니다

98008290 function calls (96393650 primitive calls) in 568.193 seconds 
Ordered by: standard name 

ncalls tottime percall cumtime percall filename:lineno(function) 
    1 0.000 0.000 0.000 0.000 <decorator-gen-0>:1(<module>) 
    1 0.000 0.000 0.000 0.000 <decorator-gen-10>:1(<module>) 
    1 0.000 0.000 0.000 0.000 <decorator-gen-11>:1(<module>) 
    1 0.000 0.000 0.000 0.000 <decorator-gen-1>:1(<module>) 
    6 0.000 0.000 0.006 0.001 <decorator-gen-1>:1(non_reentrant) 
    1 0.000 0.000 0.000 0.000 <decorator-gen-2>:1(<module>) 
    1 0.000 0.000 0.000 0.000 <decorator-gen-3>:1(<module>) 
    1 0.000 0.000 0.000 0.000 <decorator-gen-4>:1(<module>) 
    1 0.000 0.000 0.000 0.000 <decorator-gen-5>:1(<module>) 
    1 0.000 0.000 0.000 0.000 <decorator-gen-6>:1(<module>) 
    1 0.000 0.000 0.000 0.000 <decorator-gen-7>:1(<module>) 
    1 0.000 0.000 0.000 0.000 <decorator-gen-8>:1(<module>) 
    3 0.000 0.000 0.002 0.001 <decorator-gen-8>:1(_held_figure) 
    1 0.000 0.000 0.000 0.000 <decorator-gen-9>:1(<module>) 
1416 0.003 0.000 0.003 0.000 <frozen importlib._bootstrap>:1000(__init__) 
    2 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:1003(module_repr) 
1245 0.034 0.000 0.166 0.000 <frozen importlib._bootstrap>:1019(init_module_attrs) 
1245 0.011 0.000 0.209 0.000 <frozen importlib._bootstrap>:1099(create) 
1245/32 0.008 0.000 23.613 0.738 <frozen importlib._bootstrap>:1122(_exec) 
169/105 0.003 0.000 4.104 0.039 <frozen importlib._bootstrap>:1156(_load_backward_compatible) 
1414/32 0.034 0.000 23.620 0.738 <frozen importlib._bootstrap>:1186(_load_unlocked) 
    15 0.000 0.000 0.002 0.000 <frozen importlib._bootstrap>:1223(_fix_up_module) 
1650 0.002 0.000 0.006 0.000 <frozen importlib._bootstrap>:1266(find_spec) 
    19 0.000 0.000 0.006 0.000 <frozen importlib._bootstrap>:1287(load_module) 
1245 0.019 0.000 0.019 0.000 <frozen importlib._bootstrap>:129(_new_module) 
    19 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:1311(is_package) 
1631 0.004 0.000 0.009 0.000 <frozen importlib._bootstrap>:1336(find_spec) 
1631 0.022 0.000 0.254 0.000 <frozen importlib._bootstrap>:1401(_open_registry) 
1631 0.034 0.000 0.307 0.000 <frozen importlib._bootstrap>:1408(_search_registry) 
    139 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:141(__init__) 
1631 0.006 0.000 0.314 0.000 <frozen importlib._bootstrap>:1423(find_spec) 
    139 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:144(__enter__) 
    1245/32 0.022 0.000 23.612 0.738 <frozen importlib._bootstrap>:1465(exec_module) 
    139 0.001 0.000 0.003 0.000 <frozen importlib._bootstrap>:147(__exit__) 
    556 0.001 0.000 0.001 0.000 <frozen importlib._bootstrap>:148(<genexpr>) 
1245 0.055 0.000 2.437 0.002 <frozen importlib._bootstrap>:1534(get_code) 
1245 0.008 0.000 0.008 0.000 <frozen importlib._bootstrap>:1591(__init__) 
1245 0.001 0.000 0.001 0.000 <frozen importlib._bootstrap>:1616(get_filename) 
1245 0.941 0.001 1.037 0.001 <frozen importlib._bootstrap>:1621(get_data) 
1245 0.011 0.000 0.384 0.000 <frozen importlib._bootstrap>:1631(path_stats) 
    120 0.001 0.000 0.001 0.000 <frozen importlib._bootstrap>:1697(__init__) 
    120/92 0.004 0.000 4.087 0.044 <frozen importlib._bootstrap>:1708(load_module) 
1888 0.017 0.000 0.066 0.000 <frozen importlib._bootstrap>:172(__init__) 
    120 0.001 0.000 0.006 0.000 <frozen importlib._bootstrap>:1726(is_package) 
    240 0.001 0.000 0.001 0.000 <frozen importlib._bootstrap>:1729(<genexpr>) 
    181 0.058 0.000 0.128 0.001 <frozen importlib._bootstrap>:1853(_path_hooks) 
2614 0.012 0.000 0.142 0.000 <frozen importlib._bootstrap>:1870(_path_importer_cache) 
    135 0.002 0.000 0.461 0.003 <frozen importlib._bootstrap>:1887(_legacy_get_spec) 
1631 0.035 0.000 2.252 0.001 <frozen importlib._bootstrap>:1902(_get_spec) 
2857 0.033 0.000 0.035 0.000 <frozen importlib._bootstrap>:192(acquire) 
1631 0.009 0.000 2.261 0.001 <frozen importlib._bootstrap>:1934(find_spec) 
    179 0.006 0.000 0.012 0.000 <frozen importlib._bootstrap>:1979(__init__) 
1253 0.001 0.000 0.001 0.000 <frozen importlib._bootstrap>:1985(<genexpr>) 
1365 0.016 0.000 0.055 0.000 <frozen importlib._bootstrap>:2011(_get_spec) 
2335 0.118 0.000 1.603 0.001 <frozen importlib._bootstrap>:2016(find_spec) 
    178 0.016 0.000 0.100 0.001 <frozen importlib._bootstrap>:2061(_fill_cache) 
    178 0.003 0.000 0.004 0.000 <frozen importlib._bootstrap>:2090(<setcomp>) 
    179 0.002 0.000 0.071 0.000 <frozen importlib._bootstrap>:2102(path_hook_for_FileFinder) 
7719 0.012 0.000 0.017 0.000 <frozen importlib._bootstrap>:2120(__enter__) 
7719 0.013 0.000 0.020 0.000 <frozen importlib._bootstrap>:2124(__exit__) 
1176 0.007 0.000 0.019 0.000 <frozen importlib._bootstrap>:2138(_find_spec_legacy) 
1650/1648 0.097 0.000 2.739 0.002 <frozen importlib._bootstrap>:2147(_find_spec) 
2857 0.031 0.000 0.033 0.000 <frozen importlib._bootstrap>:217(release) 
    216 0.001 0.000 0.001 0.000 <frozen importlib._bootstrap>:2187(_sanity_check) 
1730/92 0.045 0.000 23.736 0.258 <frozen importlib._bootstrap>:2207(_find_and_load_unlocked) 
1730/92 0.057 0.000 23.753 0.258 <frozen importlib._bootstrap>:2234(_find_and_load) 
216/214 0.004 0.000 0.051 0.000 <frozen importlib._bootstrap>:2240(_gcd_import) 
338220/334774 1.206 0.000 10.385 0.000 <frozen importlib._bootstrap>:2264(_handle_fromlist) 
108/107 0.001 0.000 0.052 0.000 <frozen importlib._bootstrap>:2322(__import__) 
1730 0.006 0.000 0.006 0.000 <frozen importlib._bootstrap>:257(__init__) 
1730 0.017 0.000 0.134 0.000 <frozen importlib._bootstrap>:261(__enter__) 
1730 0.007 0.000 0.033 0.000 <frozen importlib._bootstrap>:268(__exit__) 
2857 0.040 0.000 0.106 0.000 <frozen importlib._bootstrap>:274(_get_module_lock) 
1888 0.003 0.000 0.003 0.000 <frozen importlib._bootstrap>:288(cb) 
1127 0.011 0.000 0.044 0.000 <frozen importlib._bootstrap>:293(_lock_unlock_module) 
2335 0.007 0.000 0.007 0.000 <frozen importlib._bootstrap>:30(_relax_case) 
1804/32 0.007 0.000 23.649 0.739 <frozen importlib._bootstrap>:313(_call_with_frames_removed) 
2490 0.035 0.000 0.140 0.000 <frozen importlib._bootstrap>:437(cache_from_source) 
2490 0.008 0.000 0.014 0.000 <frozen importlib._bootstrap>:45(_r_long) 
9163 0.047 0.000 0.132 0.000 <frozen importlib._bootstrap>:50(_path_join) 
9990 0.024 0.000 0.024 0.000 <frozen importlib._bootstrap>:518(_verbose_message) 
9163 0.050 0.000 0.071 0.000 <frozen importlib._bootstrap>:52(<listcomp>) 
1365/1155 0.007 0.000 4.094 0.004 <frozen importlib._bootstrap>:534(_check_name_wrapper) 
    38 0.000 0.000 0.006 0.000 <frozen importlib._bootstrap>:546(_requires_builtin_wrapper) 
2618 0.042 0.000 0.063 0.000 <frozen importlib._bootstrap>:56(_path_split) 
1245 0.055 0.000 0.070 0.000 <frozen importlib._bootstrap>:599(_validate_bytecode_header) 
1245 0.017 0.000 0.823 0.001 <frozen importlib._bootstrap>:654(_compile_bytecode) 
5307 0.020 0.000 1.598 0.000 <frozen importlib._bootstrap>:68(_path_stat) 
    2 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:690(_module_repr) 
1245 0.003 0.000 0.003 0.000 <frozen importlib._bootstrap>:728(__init__) 
1245 0.004 0.000 0.004 0.000 <frozen importlib._bootstrap>:732(__enter__) 
1245 0.017 0.000 0.032 0.000 <frozen importlib._bootstrap>:739(__exit__) 
4980 0.005 0.000 0.005 0.000 <frozen importlib._bootstrap>:742(<genexpr>) 
1727 0.014 0.000 0.597 0.000 <frozen importlib._bootstrap>:78(_path_is_mode_type) 
1801 0.016 0.000 0.016 0.000 <frozen importlib._bootstrap>:790(__init__) 
2490 0.017 0.000 0.104 0.000 <frozen importlib._bootstrap>:824(cached) 
1245 0.008 0.000 0.010 0.000 <frozen importlib._bootstrap>:842(parent) 
1247 0.001 0.000 0.001 0.000 <frozen importlib._bootstrap>:850(has_location) 
49/48 0.001 0.000 0.464 0.010 <frozen importlib._bootstrap>:859(spec_from_loader) 
1547 0.006 0.000 0.547 0.000 <frozen importlib._bootstrap>:87(_path_isfile) 
1395 0.020 0.000 0.487 0.000 <frozen importlib._bootstrap>:884(spec_from_file_location) 
    180 0.001 0.000 0.057 0.000 <frozen importlib._bootstrap>:92(_path_isdir) 
    1 0.000 0.000 0.000 0.000 <string>:1(<module>) 
    1 0.000 0.000 0.000 0.000 <string>:1(error) 
    1 0.000 0.000 0.000 0.000 <string>:11(com_error) 
    313 0.001 0.000 0.001 0.000 <string>:12(__new__) 
    1 0.000 0.000 0.000 0.000 <string>:2(<module>) 
    1 0.000 0.000 0.000 0.000 <string>:2(__init__) 
    4 0.000 0.000 0.000 0.000 <string>:2(_parse_args) 
    1 0.000 0.000 0.000 0.000 <string>:5(AndersonResult) 
    1 0.000 0.000 0.000 0.000 <string>:5(Anderson_ksampResult) 
    1 0.000 0.000 0.000 0.000 <string>:5(AnsariResult) 
    1 0.000 0.000 0.000 0.000 <string>:5(ArgInfo) 
    1 0.000 0.000 0.000 0.000 <string>:5(ArgSpec) 
    1 0.000 0.000 0.000 0.000 <string>:5(Arguments) 
    1 0.000 0.000 0.000 0.000 <string>:5(ArrayFormula) 
    1 0.000 0.000 0.000 0.000 <string>:5(Attribute) 
    1 0.000 0.000 0.000 0.000 <string>:5(BartlettResult) 
    1 0.000 0.000 0.000 0.000 <string>:5(BinnedStatistic2dResult) 
    1 0.000 0.000 0.000 0.000 <string>:5(FlignerResult) 
    1 0.000 0.000 0.000 0.000 <string>:5(Formula) 
    1 0.002 0.002 0.002 0.002 <string>:5(FriedmanchisquareResult) 
    1 0.000 0.000 0.000 0.000 <string>:5(FullArgSpec) 
    1 0.000 0.000 0.000 0.000 <string>:5(FunctionAttributes) 
    1 0.000 0.000 0.000 0.000 <string>:5(HistogramResult) 
19424 2.346 0.000 2.346 0.000 {pandas.algos.take_2d_axis1_object_object} 
82904 0.318 0.000 0.318 0.000 {pandas.index.get_value_at} 
    199 0.051 0.000 0.051 0.000 {pandas.lib.clean_index_list} 
    57 0.002 0.000 0.002 0.000 {pandas.lib.get_blkno_indexers} 
2918 0.095 0.000 0.095 0.000 {pandas.lib.infer_dtype} 
    38 0.001 0.000 0.001 0.000 {pandas.lib.is_bool_array} 
    76 0.000 0.000 0.000 0.000 {pandas.lib.is_bool} 
166001 0.169 0.000 0.169 0.000 {pandas.lib.is_float} 
249112 0.215 0.000 0.215 0.000 {pandas.lib.is_integer} 
    20 0.000 0.000 0.000 0.000 {pandas.lib.is_timedelta_array} 
    38 0.002 0.000 0.002 0.000 {pandas.lib.isnullobj} 
414822 1.023 0.000 1.023 0.000 {pandas.lib.isscalar} 
    11 0.054 0.005 0.054 0.005 {pandas.lib.maybe_convert_numeric} 
    56 0.006 0.000 0.006 0.000 {pandas.lib.maybe_convert_objects} 
    3 0.000 0.000 0.018 0.006 {pandas.lib.reduce} 
    65 0.009 0.000 0.105 0.002 {pandas.lib.scalar_compare} 
    28 0.001 0.000 0.001 0.000 {pandas.lib.to_object_array_tuples} 
415734 2.533 0.000 4.116 0.000 {pandas.lib.values_from_object} 
    20 0.000 0.000 0.000 0.000 {pandas.tslib.is_timestamp_array} 
    48 0.001 0.000 0.001 0.000 {reduce.nansum} 
+0

이 모두인가? 코드가 다중 처리 또는 프로파일 러의 "도달 할 수없는"것을 사용할 수 있습니까? 나는 "tottime"의 합계가 전체 시간 (568.193)과 대략 같아야한다고 생각했을 것이다. – syntonym

+0

'ncalls'은 함수가 얼마나 자주 호출되었는지를 알려주고,'tottime'은 그 함수에서 소비 한 총 시간을 나타냅니다. 당신은 대부분 내장 된 데코레이터와 importlib 호출을 무시하기를 원할 것입니다. 왜냐하면 처음에는 그것들에 대해 많은 것을 할 수 없기 때문에, 그리고 어쨌든 많은 리소스를 차지하지 않기 때문입니다. 가장 많은 호출 횟수와 가장 높은 총 시간을 가진 함수를 살펴보면 프로그램이 모든 시간을 소비하는 곳을 알 수 있습니다. 이제 그 시간 및/또는 호출 횟수를 줄이기 위해 노력하십시오. – deceze

+0

@deceze 함수 호출에 소비 된 총 시간이 2.5 초 (pandas.lib.values_from_object) 인 것 같습니다. 그래서 함수 호출을 지우더라도 응용 프로그램의 속도를 최대 2.5 초로 높이면 안됩니까? 10 분의 총 시간과 비교하면 그렇게 많이하지 않는 것 같습니까? 프로그램이 많은 시간을 보내거나 출력을 잘못 읽었습니까? – syntonym

답변

0

같은 cprofile 명령 출력을 시각화. 특히, AUra을 사용하면 효과적입니다 (최소 오버 헤드가 있음).

flamegraph은 다음과 같습니다 enter image description here