2016-07-06 72 views
0

我不是一個計算機科學家,我一直有一個很難試圖讓我的基於代理的模型相當快(Implementing Pool on a for loop with a lot of inputsMultiprocessing pool example (parallel) is slower than sequential. Trying to understand pool in pythonReturning 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

是怎麼回事?代碼是否使用多處理或者可能「探測器無法觸及」的東西?我會認爲「總時間」的總和應該與總時間(568.193)大致相同,在這裏似乎並不是這樣。 – syntonym

+0

'ncalls'告訴你該函數被調用的頻率,'tottime'在該函數中花費的總時間。你會主要忽略所有內置的裝飾器和importlib調用,因爲你可能無法在第一時間做很多事情,並且因爲它們最終沒有佔用太多資源。查看呼叫次數最多,總時間最長的功能,並且知道程序花費的時間。現在嘗試減少時間和/或呼叫次數。 – deceze

+0

@deceze看起來在函數調用中花費的總時間最多爲2.5秒(pandas.lib.values_from_object)。所以,即使你刪除那個函數調用不應該加速應用程序最多2.5秒?相比~10分鐘的總時間,似乎沒有那麼多?程序花費了那麼多時間,或者我誤讀了輸出結果? – syntonym

回答

0

您可能需要使用一些可用來分析工具/可視化CPROFILE輸出像pstatsRunShakeRun

0

我也建議flamegraphs解釋分析結果。它適用於PyFlame,這是一個PTracing分析器(它的開銷很小)。

一個flamegraph看起來是這樣的: enter image description here