我有12核心和28GB内存的服务器。我正在运行两个版本的Python;一个用多处理,另一个用顺序。我希望Multiprocessing.py完成年初相比Sequential.py但多码需要相比,顺序码(25秒)Python多处理需要更多时间
Multiprocessing.py
import os,multiprocessing,time
def cube(x):
print(x**3)
return
if __name__ == '__main__':
jobs = []
start = time.time()
for i in range(5000):
p = multiprocessing.Process(target=cube(i))
jobs.append(p)
p.start()
end = time.time()
print end - start
Sequential.py
的5倍以上(120秒)import os,time
def cube(x):
print(x**3)
return
if __name__ == '__main__':
start = time.time()
for i in range(5000):
cube(i)
end = time.time()
print end - start
你能帮忙吗?
随着其巨大的差异,它可能并不重要,但你可能想看看['''timeit'''](https://docs.python.org/3/library/timeit.html)模块是否提供了类似的结果。也许在计时时注释掉打印功能。在多处理示例中,您正在计划安装以及执行 - 是您的意图吗? – wwii
请清理你问题中的代码 - 缩进是关闭的,你在'''cube'(I)'''中混合了一个变量名。 – wwii
您正在创建5000个进程来执行几次乘法操作?这不能比循环更快,开销太大。 – mzc