为了确定使用大部分计算时间的步骤,我运行了 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) 我正在pmapJulia 中使用分布式数组来并行化代码。该命令@everywhere include("./code.jl")运行时会输出一长串警告信息,过程中会消耗相当长的时间。文件内的包code.jl例如:
using DataFrames\nusing Images\nRun Code Online (Sandbox Code Playgroud)\n\n我不知道如何解决这个问题missing from the cache
这是运行的线路
\n\n@everywhere include("./code.jl")\nRun Code Online (Sandbox Code Playgroud)\n\n我没想到会收到一连串的抱怨。但是,所有工作人员的输出都与此类似:
\n\nFrom 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) 我有一些缺少值的浮点数组,因此其类型为Array{Union{Missing, Float64},1}。是否有将非缺失部分转换为的命令Array{Float64,1}?
第一次用 python 编程,我想你会在阅读我的问题后注意到它: + 如何在运行应用程序时删除消息“未安装加密,禁用加密”?
我使用 pyinstaller 工具创建了一个基本的控制台应用程序,代码是用 python 编写的。当我运行可执行文件时,我收到消息“未安装加密,已禁用加密”。该程序仍在运行,但我更愿意摆脱该消息。
有人能帮我吗?
提前致谢。