我刚刚了解了多处理,并试图了解它与简单的for循环相比有多快。 我使用简单的代码进行比较,
import multiprocessing
from time import time as tt
def spawn(num,num2):
print('Process {} {}'.format(num,num2))
#normal process/single core
st = tt()
for i in range (1000):
spawn(i,i+1)
print('Total Running Time simple for loop:{}'.format((tt()-st)))
#multiprocessing
st2 = tt()
if __name__ == '__main__':
for i in range(1000):
p=multiprocessing.Process(target=spawn, args=(i,i+1))
p.start()
print('Total Running Time multiprocessing:{}'.format((tt()-st2)))
我得到的输出表明,多处理比简单的for循环慢得多
Total Running Time simple for loop:0.09924721717834473
Total Running Time multiprocessing:40.157875299453735
谁能解释为什么会这样?
答案 0 :(得分:2)
这是因为处理流程的开销。在这种情况下,进程的创建和删除不会影响代码从并行运行中获得的性能提升。如果执行的代码更复杂,则可能会加快速度。