我有一个受CPU约束的单线程Python 3程序,唯一的IO正在打印几行以输出(不读取/写入文件)。

在我的台式机(AMD Ryzen 1700x 3.8 GHz,16GB 3000 MHz DDR4)上,其性能(稳定)为3400集/秒,运行时间约为60秒。

在我的笔记本电脑(英特尔i7-6600U 2.8 GHz,16GB 2000 MHz DDR3)上,性能以每秒7000次/秒的速度增长了一倍,而运行时间不到30秒。

两台机器都运行相同的操作系统(Fedora 26)和相同的python版本(不是从源代码构建的)。

而且,进行概要分析时,会显示一行

10.999 tottime, 28.814 cumtime for arrayprint.py:557(fillFormat)


但仅当代码在桌面上运行时。在笔记本电脑上,该特定功能根本没有出现(arrayprint功能都没有使用超过1秒钟的时间)。

机器之间的性能差异不仅很奇怪,而且在程序执行期间,没有数组或列表从未打印到屏幕上,转换为字符串或保存为文件。

这是台式机的完整配置文件:

         54499635 function calls (53787999 primitive calls) in 58.746 seconds

   Ordered by: standard name
   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
   533727    0.359    0.000    0.514    0.000 <frozen importlib._bootstrap>:402(parent)
   533727    0.469    0.000    0.697    0.000 <frozen importlib._bootstrap>:989(_handle_fromlist)
        1    0.000    0.000   58.746   58.746 <string>:1(<module>)
        4    0.000    0.000    0.000    0.000 __init__.py:120(getLevelName)
   567524    0.237    0.000    0.727    0.000 __init__.py:1284(debug)
        2    0.000    0.000    0.000    0.000 __init__.py:1296(info)
        2    0.000    0.000    0.000    0.000 __init__.py:1308(warning)
        2    0.000    0.000    0.000    0.000 __init__.py:1320(warn)
        4    0.000    0.000    0.000    0.000 __init__.py:1374(findCaller)
        4    0.000    0.000    0.000    0.000 __init__.py:1404(makeRecord)
        4    0.000    0.000    0.000    0.000 __init__.py:1419(_log)
        4    0.000    0.000    0.000    0.000 __init__.py:1444(handle)
        4    0.000    0.000    0.000    0.000 __init__.py:1498(callHandlers)
   567528    0.175    0.000    0.175    0.000 __init__.py:1528(getEffectiveLevel)
   567528    0.315    0.000    0.490    0.000 __init__.py:1542(isEnabledFor)
        4    0.000    0.000    0.000    0.000 __init__.py:157(<lambda>)
        4    0.000    0.000    0.000    0.000 __init__.py:251(__init__)
        4    0.000    0.000    0.000    0.000 __init__.py:329(getMessage)
        4    0.000    0.000    0.000    0.000 __init__.py:387(usesTime)
        4    0.000    0.000    0.000    0.000 __init__.py:390(format)
        4    0.000    0.000    0.000    0.000 __init__.py:540(usesTime)
        4    0.000    0.000    0.000    0.000 __init__.py:546(formatMessage)
        4    0.000    0.000    0.000    0.000 __init__.py:562(format)
        8    0.000    0.000    0.000    0.000 __init__.py:703(filter)
        8    0.000    0.000    0.000    0.000 __init__.py:807(acquire)
        8    0.000    0.000    0.000    0.000 __init__.py:814(release)
        4    0.000    0.000    0.000    0.000 __init__.py:827(format)
        4    0.000    0.000    0.000    0.000 __init__.py:850(handle)
        4    0.000    0.000    0.000    0.000 __init__.py:969(flush)
        4    0.000    0.000    0.000    0.000 __init__.py:980(emit)
   289159    0.101    0.000    1.491    0.000 _methods.py:31(_sum)
   533727    0.175    0.000    1.613    0.000 _methods.py:37(_any)
   177909    0.862    0.000   33.737    0.000 arrayprint.py:237(_get_formatdict)
   177909    0.370    0.000   34.214    0.000 arrayprint.py:273(_get_format_function)
   177909    0.686    0.000   39.971    0.000 arrayprint.py:315(_array2string)
533727/177909    0.674    0.000   40.351    0.000 arrayprint.py:340(array2string)
  1224652    0.960    0.000    1.554    0.000 arrayprint.py:467(_extendLine)
   177909    1.671    0.000    4.320    0.000 arrayprint.py:475(_formatArray)
   533727    0.682    0.000   29.496    0.000 arrayprint.py:543(__init__)
   533727   10.999    0.000   28.814    0.000 arrayprint.py:557(fillFormat)
   355336    1.600    0.000    5.432    0.000 arrayprint.py:589(<listcomp>)
  2416068    2.677    0.000    3.832    0.000 arrayprint.py:642(_digits)
   177909    0.720    0.000    2.378    0.000 arrayprint.py:652(__init__)
  1224652    1.057    0.000    1.057    0.000 arrayprint.py:665(__call__)
   533727    0.147    0.000    0.147    0.000 arrayprint.py:674(__init__)
   177909    0.227    0.000    0.319    0.000 arrayprint.py:702(__init__)
   177909    0.415    0.000   17.986    0.000 arrayprint.py:713(__init__)
   177909    0.166    0.000    0.166    0.000 arrayprint.py:730(__init__)
   177909    0.046    0.000    0.046    0.000 arrayprint.py:751(__init__)
        1    0.000    0.000    0.000    0.000 enum.py:265(__call__)
        1    0.000    0.000    0.000    0.000 enum.py:515(__new__)
        1    0.000    0.000    0.000    0.000 enum.py:544(_missing_)
   177909    0.206    0.000    0.206    0.000 enum.py:552(__str__)
   177909    0.269    0.000    0.475    0.000 enum.py:564(__format__)
   755408    0.248    0.000    0.366    0.000 enum.py:579(__hash__)
   200000    0.037    0.000    0.037    0.000 enum.py:592(name)
    27976    0.005    0.000    0.005    0.000 enum.py:597(value)
   200524    0.443    0.000    0.641    0.000 eventgen.py:115(_push)
   200001    0.492    0.000    0.885    0.000 eventgen.py:122(pop)
   200000    0.892    0.000    1.036    0.000 eventgen.py:137(ce_str)
    13988    0.017    0.000    0.034    0.000 eventgen.py:15(__lt__)
    99676    0.168    0.000    0.911    0.000 eventgen.py:44(event_new)
    79335    0.096    0.000    0.520    0.000 eventgen.py:52(event_end)
    11689    0.078    0.000    0.261    0.000 eventgen.py:61(event_new_handoff)
     9824    0.014    0.000    0.098    0.000 eventgen.py:90(event_end_handoff)
    77441    0.295    0.000    0.380    0.000 eventgen.py:94(reassign)
   177909    0.177    0.000    0.555    0.000 fromnumeric.py:1364(ravel)
   200001    0.093    0.000    0.464    0.000 fromnumeric.py:1471(nonzero)
   289159    0.542    0.000    2.148    0.000 fromnumeric.py:1710(sum)
   533727    0.637    0.000    2.956    0.000 fromnumeric.py:1866(any)
   200001    0.120    0.000    0.372    0.000 fromnumeric.py:55(_wrapfunc)
        4    0.000    0.000    0.000    0.000 genericpath.py:117(_splitext)
       49    0.000    0.000    0.001    0.000 grid.py:172(neighbors1)
       49    0.001    0.000    0.001    0.000 grid.py:195(neighbors2)
533727/177909    0.311    0.000   40.472    0.000 numeric.py:1927(array_str)
  1067454    1.724    0.000    4.091    0.000 numeric.py:2692(seterr)
  1067454    1.466    0.000    1.603    0.000 numeric.py:2792(geterr)
   533727    0.299    0.000    0.422    0.000 numeric.py:3085(__init__)
   533727    0.411    0.000    2.588    0.000 numeric.py:3089(__enter__)
   533727    0.461    0.000    2.374    0.000 numeric.py:3094(__exit__)
   177909    0.064    0.000    0.151    0.000 numeric.py:463(asarray)
   711636    0.223    0.000    0.503    0.000 numeric.py:534(asanyarray)
        4    0.000    0.000    0.000    0.000 posixpath.py:119(splitext)
        4    0.000    0.000    0.000    0.000 posixpath.py:142(basename)
        4    0.000    0.000    0.000    0.000 posixpath.py:39(_get_sep)
        6    0.000    0.000    0.000    0.000 posixpath.py:50(normcase)
        4    0.000    0.000    0.000    0.000 process.py:137(name)
        4    0.000    0.000    0.000    0.000 process.py:35(current_process)
        1    0.000    0.000    0.000    0.000 signal.py:25(_int_to_enum)
        2    0.000    0.000    0.000    0.000 signal.py:35(_enum_to_int)
        1    0.000    0.000    0.000    0.000 signal.py:45(signal)
    99627    0.062    0.000    0.062    0.000 stats.py:38(new)
    20292    0.028    0.000    0.039    0.000 stats.py:42(new_rej)
    88750    0.047    0.000    0.047    0.000 stats.py:48(end)
    11623    0.005    0.000    0.005    0.000 stats.py:51(hoff_new)
     1799    0.001    0.000    0.002    0.000 stats.py:54(hoff_rej)
    22091    0.012    0.000    0.012    0.000 stats.py:58(rej)
   200000    0.234    0.000    1.513    0.000 stats.py:64(iter)
        1    0.000    0.000    0.000    0.000 stats.py:69(n_iter)
        1    0.000    0.000    0.000    0.000 stats.py:86(endsim)
        1    0.000    0.000    0.001    0.001 strats.py:189(get_init_action)
   200000    1.070    0.000   49.964    0.000 strats.py:193(get_action)
   177909    1.348    0.000    1.937    0.000 strats.py:220(execute_action)
   200001    4.572    0.000   47.626    0.000 strats.py:243(optimal_ch)
    89158    0.071    0.000    0.958    0.000 strats.py:299(reward)
    89158    0.018    0.000    0.018    0.000 strats.py:308(discount)
  1242355    0.944    0.000    0.944    0.000 strats.py:333(get_qval)
    89158    0.160    0.000    0.160    0.000 strats.py:336(update_qval)
        1    0.000    0.000   58.746   58.746 strats.py:40(init_sim)
        1    1.271    1.271   58.745   58.745 strats.py:49(_simulate)
        4    0.000    0.000    0.000    0.000 threading.py:1076(name)
        4    0.000    0.000    0.000    0.000 threading.py:1230(current_thread)
   227976    0.120    0.000    0.162    0.000 types.py:135(__get__)
   177909    0.079    0.000    0.079    0.000 {built-in method _functools.reduce}
   200001    0.192    0.000    0.222    0.000 {built-in method _heapq.heappop}
   200524    0.084    0.000    0.088    0.000 {built-in method _heapq.heappush}
   310143    0.064    0.000    0.064    0.000 {built-in method _operator.gt}
   843054    0.152    0.000    0.152    0.000 {built-in method _operator.lt}
        1    0.000    0.000    0.000    0.000 {built-in method _signal.signal}
        8    0.000    0.000    0.000    0.000 {built-in method _thread.get_ident}
        2    0.000    0.000    0.000    0.000 {built-in method _warnings.warn}
        1    0.000    0.000   58.746   58.746 {built-in method builtins.exec}
   200001    0.056    0.000    0.056    0.000 {built-in method builtins.getattr}
  1067468    0.228    0.000    0.228    0.000 {built-in method builtins.hasattr}
   755408    0.118    0.000    0.118    0.000 {built-in method builtins.hash}
   467082    0.164    0.000    0.164    0.000 {built-in method builtins.isinstance}
   533727    0.107    0.000    0.107    0.000 {built-in method builtins.issubclass}
 10361766    1.076    0.000    1.076    0.000 {built-in method builtins.len}
   533441    0.304    0.000    0.304    0.000 {built-in method builtins.max}
   533923    0.198    0.000    0.198    0.000 {built-in method builtins.min}
   889545    0.368    0.000    0.368    0.000 {built-in method numpy.core.multiarray.array}
   111251    0.101    0.000    0.101    0.000 {built-in method numpy.core.multiarray.where}
  2134908    0.377    0.000    0.377    0.000 {built-in method numpy.core.umath.geterrobj}
  1067454    0.524    0.000    0.524    0.000 {built-in method numpy.core.umath.seterrobj}
       14    0.000    0.000    0.000    0.000 {built-in method posix.fspath}
        4    0.000    0.000    0.000    0.000 {built-in method posix.getpid}
        4    0.000    0.000    0.000    0.000 {built-in method sys._getframe}
        5    0.000    0.000    0.000    0.000 {built-in method time.time}
        8    0.000    0.000    0.000    0.000 {method 'acquire' of '_thread.RLock' objects}
   533727    0.299    0.000    1.912    0.000 {method 'any' of 'numpy.ndarray' objects}
      875    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
    16544    0.119    0.000    0.119    0.000 {method 'choice' of 'mtrand.RandomState' objects}
   533727    0.872    0.000    0.872    0.000 {method 'compress' of 'numpy.ndarray' objects}
        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
   188835    0.641    0.000    0.641    0.000 {method 'exponential' of 'mtrand.RandomState' objects}
        4    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
        4    0.000    0.000    0.000    0.000 {method 'flush' of '_io.TextIOWrapper' objects}
        8    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
   355818    0.069    0.000    0.069    0.000 {method 'item' of 'numpy.ndarray' objects}
   200001    0.196    0.000    0.196    0.000 {method 'nonzero' of 'numpy.ndarray' objects}
   533727    0.123    0.000    0.123    0.000 {method 'pop' of 'dict' objects}
    11689    0.053    0.000    0.053    0.000 {method 'randint' of 'mtrand.RandomState' objects}
   168494    0.128    0.000    0.128    0.000 {method 'random_sample' of 'mtrand.RandomState' objects}
   177909    0.232    0.000    0.232    0.000 {method 'ravel' of 'numpy.ndarray' objects}
  1889376    5.023    0.000    5.023    0.000 {method 'reduce' of 'numpy.ufunc' objects}
        8    0.000    0.000    0.000    0.000 {method 'release' of '_thread.RLock' objects}
       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
   533727    0.155    0.000    0.155    0.000 {method 'rpartition' of 'str' objects}
  4865786    1.100    0.000    1.100    0.000 {method 'rstrip' of 'str' objects}
        8    0.000    0.000    0.000    0.000 {method 'write' of '_io.TextIOWrapper' objects}


这是笔记本电脑的:

        27738517 function calls (26673571 primitive calls) in 28.612 seconds

   Ordered by: standard name

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        1    0.000    0.000   28.612   28.612 <string>:1(<module>)
        4    0.000    0.000    0.000    0.000 __init__.py:120(getLevelName)
   566894    0.244    0.000    0.720    0.000 __init__.py:1284(debug)
        2    0.000    0.000    0.000    0.000 __init__.py:1296(info)
        2    0.000    0.000    0.000    0.000 __init__.py:1308(warning)
        2    0.000    0.000    0.000    0.000 __init__.py:1320(warn)
        4    0.000    0.000    0.000    0.000 __init__.py:1374(findCaller)
        4    0.000    0.000    0.000    0.000 __init__.py:1404(makeRecord)
        4    0.000    0.000    0.000    0.000 __init__.py:1419(_log)
        4    0.000    0.000    0.000    0.000 __init__.py:1444(handle)
        4    0.000    0.000    0.000    0.000 __init__.py:1498(callHandlers)
   566898    0.166    0.000    0.166    0.000 __init__.py:1528(getEffectiveLevel)
   566898    0.309    0.000    0.476    0.000 __init__.py:1542(isEnabledFor)
        4    0.000    0.000    0.000    0.000 __init__.py:157(<lambda>)
        4    0.000    0.000    0.000    0.000 __init__.py:251(__init__)
        4    0.000    0.000    0.000    0.000 __init__.py:329(getMessage)
        4    0.000    0.000    0.000    0.000 __init__.py:387(usesTime)
        4    0.000    0.000    0.000    0.000 __init__.py:390(format)
        4    0.000    0.000    0.000    0.000 __init__.py:540(usesTime)
        4    0.000    0.000    0.000    0.000 __init__.py:546(formatMessage)
        4    0.000    0.000    0.000    0.000 __init__.py:562(format)
        8    0.000    0.000    0.000    0.000 __init__.py:703(filter)
        8    0.000    0.000    0.000    0.000 __init__.py:807(acquire)
        8    0.000    0.000    0.000    0.000 __init__.py:814(release)
        4    0.000    0.000    0.000    0.000 __init__.py:827(format)
        4    0.000    0.000    0.000    0.000 __init__.py:850(handle)
        4    0.000    0.000    0.000    0.000 __init__.py:969(flush)
        4    0.000    0.000    0.000    0.000 __init__.py:980(emit)
   288946    0.112    0.000    1.643    0.000 _methods.py:31(_sum)
   177491    0.330    0.000    0.330    0.000 arrayprint.py:256(_get_formatdict)
   177491    0.169    0.000    3.542    0.000 arrayprint.py:259(<lambda>)
   177491    0.465    0.000    4.419    0.000 arrayprint.py:299(_get_format_function)
   177491    0.623    0.000    9.729    0.000 arrayprint.py:343(_array2string)
532473/177491    0.987    0.000   10.679    0.000 arrayprint.py:381(wrapper)
532473/177491    0.721    0.000   10.150    0.000 arrayprint.py:399(array2string)
  1225350    0.971    0.000    1.470    0.000 arrayprint.py:527(_extendLine)
   177491    1.458    0.000    3.920    0.000 arrayprint.py:535(_formatArray)
   177491    0.768    0.000    3.373    0.000 arrayprint.py:712(__init__)
  1225350    0.960    0.000    0.960    0.000 arrayprint.py:725(__call__)
        1    0.000    0.000    0.000    0.000 enum.py:265(__call__)
        1    0.000    0.000    0.000    0.000 enum.py:515(__new__)
        1    0.000    0.000    0.000    0.000 enum.py:544(_missing_)
   177491    0.209    0.000    0.209    0.000 enum.py:552(__str__)
   177491    0.316    0.000    0.525    0.000 enum.py:564(__format__)
   755255    0.238    0.000    0.352    0.000 enum.py:579(__hash__)
   200000    0.039    0.000    0.039    0.000 enum.py:592(name)
    28626    0.005    0.000    0.005    0.000 enum.py:597(value)
   200505    0.443    0.000    0.643    0.000 eventgen.py:115(_push)
   200001    0.474    0.000    0.863    0.000 eventgen.py:122(pop)
   200000    0.834    0.000    0.983    0.000 eventgen.py:137(ce_str)
    14313    0.017    0.000    0.035    0.000 eventgen.py:15(__lt__)
    99673    0.186    0.000    0.939    0.000 eventgen.py:44(event_new)
    78949    0.094    0.000    0.500    0.000 eventgen.py:52(event_end)
    11887    0.078    0.000    0.261    0.000 eventgen.py:61(event_new_handoff)
     9996    0.017    0.000    0.103    0.000 eventgen.py:90(event_end_handoff)
    77374    0.284    0.000    0.364    0.000 eventgen.py:94(reassign)
   177491    0.195    0.000    0.595    0.000 fromnumeric.py:1380(ravel)
   200001    0.098    0.000    0.490    0.000 fromnumeric.py:1487(nonzero)
   288946    0.590    0.000    2.352    0.000 fromnumeric.py:1730(sum)
   200001    0.130    0.000    0.392    0.000 fromnumeric.py:55(_wrapfunc)
        4    0.000    0.000    0.000    0.000 genericpath.py:117(_splitext)
       49    0.000    0.000    0.001    0.000 grid.py:172(neighbors1)
       49    0.001    0.000    0.001    0.000 grid.py:195(neighbors2)
532473/177491    0.365    0.000   10.826    0.000 numeric.py:1905(array_str)
   177491    0.062    0.000    0.151    0.000 numeric.py:463(asarray)
   177491    0.051    0.000    0.104    0.000 numeric.py:534(asanyarray)
        4    0.000    0.000    0.000    0.000 posixpath.py:119(splitext)
        4    0.000    0.000    0.000    0.000 posixpath.py:142(basename)
        4    0.000    0.000    0.000    0.000 posixpath.py:39(_get_sep)
        6    0.000    0.000    0.000    0.000 posixpath.py:50(normcase)
        4    0.000    0.000    0.000    0.000 process.py:137(name)
        4    0.000    0.000    0.000    0.000 process.py:35(current_process)
        1    0.000    0.000    0.000    0.000 signal.py:25(_int_to_enum)
        2    0.000    0.000    0.000    0.000 signal.py:35(_enum_to_int)
        1    0.000    0.000    0.000    0.000 signal.py:45(signal)
    99624    0.066    0.000    0.066    0.000 stats.py:38(new)
    20675    0.028    0.000    0.040    0.000 stats.py:42(new_rej)
    88545    0.045    0.000    0.045    0.000 stats.py:48(end)
    11831    0.006    0.000    0.006    0.000 stats.py:51(hoff_new)
     1835    0.001    0.000    0.002    0.000 stats.py:54(hoff_rej)
    22510    0.013    0.000    0.013    0.000 stats.py:58(rej)
   200000    0.261    0.000    1.490    0.000 stats.py:64(iter)
        1    0.000    0.000    0.000    0.000 stats.py:69(n_iter)
        1    0.000    0.000    0.000    0.000 stats.py:86(endsim)
        1    0.000    0.000    0.000    0.000 strats.py:189(get_init_action)
   200000    1.234    0.000   19.760    0.000 strats.py:193(get_action)
   177490    1.294    0.000    1.860    0.000 strats.py:220(execute_action)
   200001    3.897    0.000   17.128    0.000 strats.py:243(optimal_ch)
    88945    0.074    0.000    1.112    0.000 strats.py:299(reward)
    88945    0.017    0.000    0.017    0.000 strats.py:308(discount)
  1241938    0.681    0.000    0.681    0.000 strats.py:333(get_qval)
    88945    0.167    0.000    0.167    0.000 strats.py:336(update_qval)
        1    0.000    0.000   28.612   28.612 strats.py:40(init_sim)
        1    1.383    1.383   28.611   28.611 strats.py:49(_simulate)
        4    0.000    0.000    0.000    0.000 threading.py:1076(name)
        4    0.000    0.000    0.000    0.000 threading.py:1230(current_thread)
   228626    0.122    0.000    0.166    0.000 types.py:135(__get__)
   177491    0.075    0.000    0.075    0.000 {built-in method _functools.reduce}
   200001    0.203    0.000    0.234    0.000 {built-in method _heapq.heappop}
   200505    0.079    0.000    0.083    0.000 {built-in method _heapq.heappush}
   320262    0.068    0.000    0.068    0.000 {built-in method _operator.gt}
   832731    0.136    0.000    0.136    0.000 {built-in method _operator.lt}
        1    0.000    0.000    0.000    0.000 {built-in method _signal.signal}
   532481    0.090    0.000    0.090    0.000 {built-in method _thread.get_ident}
        2    0.000    0.000    0.000    0.000 {built-in method _warnings.warn}
        1    0.000    0.000   28.612   28.612 {built-in method builtins.exec}
   200001    0.066    0.000    0.066    0.000 {built-in method builtins.getattr}
       14    0.000    0.000    0.000    0.000 {built-in method builtins.hasattr}
   755255    0.113    0.000    0.113    0.000 {built-in method builtins.hash}
   532473    0.092    0.000    0.092    0.000 {built-in method builtins.id}
   466451    0.166    0.000    0.166    0.000 {built-in method builtins.isinstance}
   532473    0.083    0.000    0.083    0.000 {built-in method builtins.issubclass}
  3750044    0.325    0.000    0.325    0.000 {built-in method builtins.len}
   177687    0.091    0.000    0.091    0.000 {built-in method builtins.max}
      196    0.000    0.000    0.000    0.000 {built-in method builtins.min}
   354982    0.142    0.000    0.142    0.000 {built-in method numpy.core.multiarray.array}
   111456    0.095    0.000    0.095    0.000 {built-in method numpy.core.multiarray.where}
       14    0.000    0.000    0.000    0.000 {built-in method posix.fspath}
        4    0.000    0.000    0.000    0.000 {built-in method posix.getpid}
        4    0.000    0.000    0.000    0.000 {built-in method sys._getframe}
        5    0.000    0.000    0.000    0.000 {built-in method time.time}
        8    0.000    0.000    0.000    0.000 {method 'acquire' of '_thread.RLock' objects}
   532473    0.089    0.000    0.089    0.000 {method 'add' of 'set' objects}
      875    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
    16345    0.110    0.000    0.110    0.000 {method 'choice' of 'mtrand.RandomState' objects}
        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
   532473    0.097    0.000    0.097    0.000 {method 'discard' of 'set' objects}
   188618    0.633    0.000    0.633    0.000 {method 'exponential' of 'mtrand.RandomState' objects}
        4    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
        4    0.000    0.000    0.000    0.000 {method 'flush' of '_io.TextIOWrapper' objects}
        8    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
   354982    0.066    0.000    0.066    0.000 {method 'item' of 'numpy.ndarray' objects}
   200001    0.196    0.000    0.196    0.000 {method 'nonzero' of 'numpy.ndarray' objects}
    11887    0.052    0.000    0.052    0.000 {method 'randint' of 'mtrand.RandomState' objects}
   167895    0.157    0.000    0.157    0.000 {method 'random_sample' of 'mtrand.RandomState' objects}
   177491    0.251    0.000    0.251    0.000 {method 'ravel' of 'numpy.ndarray' objects}
   643928    2.511    0.000    2.511    0.000 {method 'reduce' of 'numpy.ufunc' objects}
        8    0.000    0.000    0.000    0.000 {method 'release' of '_thread.RLock' objects}
       12    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
  2451118    0.328    0.000    0.328    0.000 {method 'rstrip' of 'str' objects}
        8    0.000    0.000    0.000    0.000 {method 'write' of '_io.TextIOWrapper' objects}

最佳答案

numpy是通过笔记本电脑上的pip和台式机上的Fedora存储库安装的。删除软件包并通过pip进行安装,从性能分析结果中删除了arrayprint (fillFormat),并且运行时几乎相同(这仍然有些奇怪)。奇怪的是,其他arrayprint函数仍在被调用,累积时间为10秒。

10-01 05:38