【发布时间】:2017-12-05 19:11:32
【问题描述】:
我已经创建了一个图像处理 python 函数。
我的系统有 4 个核心 + 4 个线程。
我想使用多处理来加速我的功能,但是任何时候使用多处理包我的功能都不是更快,而且慢了 1 分钟。 知道为什么吗?第一次使用多处理包。
主要功能:
if __name__ == '__main__':
in_path="C:/Users/username/Desktop/in.tif"
out_path="C:/Users/username/Desktop/out.tif"
myfun(in_path, out_path)
时间=3.4 分钟
使用多处理地图:
if __name__ == '__main__':
p = Pool(processes=4)
in_path="C:/Users/username/Desktop/in.tif"
out_path="C:/Users/username/Desktop/out.tif"
result = p.map(myfun(in_path,out_path))
时间=4.4 分钟
if __name__ == '__main__':
pool = multiprocessing.Pool(4)
in_path="C:/Users/username/Desktop/in.tif"
out_path="C:/Users/username/Desktop/out.tif"
pool.apply_async(myfun, args=(in_path,out_path,))
pool.close()
pool.join()
时间=4.5 分钟
【问题讨论】:
-
对,所以问题出在
myfun(),你没有告诉我们。 -
@JohnZwinck 所以多处理仅适用于特定功能?
-
为什么不给我们看代码让我们决定?
标签: python python-2.7 multiprocessing python-multiprocessing