多次执行时,Python脚本运行速度较慢

时间:2017-05-10 10:15:39

标签: python

我有一个python脚本,正常运行时间约为90秒。但是,当我只更改其中的小东西(比如在我的最终pyplot图中交替颜色)并​​快速连续多次执行时,其运行时间增加到接近10分钟。

我正在做的一些要点:

  • 我没有下载任何东西,也没有使用我的脚本创建新文件。
  • 我只是使用.dat打开一些本地保存的numpy.genfromtxt个文件,并用它们处理一些数字。
  • 我将数据转换为rec-array,并通过array.columnname广泛使用索引。
  • 对于每个文件,我循环一系列标准,这些标准基本上构成了评估的不同最大值和最小值,并且嵌入了我在数据数组的行上使用内部循环。这里和那里有几个if,但没有什么花哨的,真的。
  • 我使用multiprocessing模块如下

    import multiprocessing
    
    npro = multiprocessing.cpu_count()  # Count the number of processors
    pool = multiprocessing.Pool(processes=npro)
    bigdata = list(pool.map(analyze, range(len(FileEndings))))
    pool.close()
    

    analyze是我的主要函数,FileEndings是它的输入,一个字符串,用于创建我想要加载和评估的文件的正确名称。之后,我再次使用

    pool2 = multiprocessing.Pool(processes=npro)
    listofaverages = list(pool2.map(averaging, range(8)))
    pool2.close()   
    

    averaging是我的另一个功能。

  • 我使用numba的@jit装饰器来加速我在内循环中进行的基本计算,nogilnopythoncache都设置为{{1 }}。评论这些并不能解决问题。
  • 我在Ubuntu 16.04上运行scipt,并使用最近的Anaconda构建的python进行编译。
  • 我在PyCharm中编写代码并在大多数时间在其控制台中运行它。但是,更改为True也无济于事。
  • 只需不运行脚本大约3分钟就可以让它恢复正常运行时。
  • 使用bash表明所有处理器在运行时都处于满负荷状态。我也看到很多来自PyCharm(大约50个)的过程,每个过程都等于{7}的htop。大多数MEM%为0,少数例外情况在几个百分点范围内。

之前有没有人遇到过这样的问题?如果是这样,任何建议可能会有什么帮助?或者我使用的任何东西都容易引起这些问题?

1 个答案:

答案 0 :(得分:0)

可能会关闭,问题是由我机器中的风扇故障引起的。