小编Sch*_*tor的帖子

> 90% 的时间花在“thread.lock”对象的“acquire”方法上

为了确定使用大部分计算时间的步骤,我运行了 cProfile 并得到以下结果:

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        1    0.014    0.014  216.025  216.025 func_poolasync.py:2(<module>)
    11241  196.589    0.017  196.589    0.017 {method 'acquire' of 'thread.lock' objects}
      982    0.010    0.000  196.532    0.200 threading.py:309(wait)
     1000    0.002    0.000  196.498    0.196 pool.py:565(get)
     1000    0.005    0.000  196.496    0.196 pool.py:557(wait)
515856/3987    0.350    0.000   13.434    0.003 artist.py:230(stale)
Run Code Online (Sandbox Code Playgroud)

大部分时间花费在这一步上显然是method 'acquire' of 'thread.lock' objects。我没有使用过线程;相反,我已经使用pool.apply_async了几个处理器,所以我很困惑为什么thread.lock会出现这个问题?

我希望能说明为什么这是瓶颈?而这一次又是如何打倒的?

代码如下所示:

path='/usr/home/work'
filename='filename'

with open(path+filename+'/'+'result.pickle', 'rb') as f:
     pdata = pickle.load(f)

if __name__ == '__main__':
    pool = Pool()    
    results=[] …
Run Code Online (Sandbox Code Playgroud)

profiling multiprocessing cprofile python-2.7

10
推荐指数
0
解决办法
3811
查看次数

模块不支持预编译,但由支持预编译的模块导入

我正在pmapJulia 中使用分布式数组来并行化代码。该命令@everywhere include("./code.jl")运行时会输出一长串警告信息,过程中会消耗相当长的时间。文件内的包code.jl例如:

\n\n
using DataFrames\nusing Images\n
Run Code Online (Sandbox Code Playgroud)\n\n

我不知道如何解决这个问题missing from the cache

\n\n

这是运行的线路

\n\n
@everywhere include("./code.jl")\n
Run Code Online (Sandbox Code Playgroud)\n\n

我没想到会收到一连串的抱怨。但是,所有工作人员的输出都与此类似:

\n\n
From worker 2:  \xe2\x94\x82 This may mean CategoricalArrays [324d7699-5711-5eae-9e2f-1d82baa6b597] does not support precompilation but is imported by a module that does.\n      From worker 2:    \xe2\x94\x94 @ Base loading.jl:947\n      From worker 6:    \xe2\x94\x8c Warning: Module CategoricalArrays with build ID 5344443537363826 is missing from the cache.\nFrom worker 4:  \xe2\x94\x8c Warning: Module DataFrames with build ID …
Run Code Online (Sandbox Code Playgroud)

julia

3
推荐指数
1
解决办法
1908
查看次数

在Julia中将类型Array {Union {Missing,Float64},1}转换为Array {Float64,1}

我有一些缺少值的浮点数组,因此其类型为Array{Union{Missing, Float64},1}。是否有将非缺失部分转换为的命令Array{Float64,1}

julia

2
推荐指数
1
解决办法
163
查看次数

python + 如何删除消息“未安装加密,已禁用加密”

第一次用 python 编程,我想你会在阅读我的问题后注意到它: + 如何在运行应用程序时删除消息“未安装加密,禁用加密”?

我使用 pyinstaller 工具创建了一个基本的控制台应用程序,代码是用 python 编写的。当我运行可执行文件时,我收到消息“未安装加密,已禁用加密”。该程序仍在运行,但我更愿意摆脱该消息。

有人能帮我吗?

提前致谢。

python cryptography

1
推荐指数
1
解决办法
1345
查看次数