我现在正在测试多处理编程,并且能够大大减少计算时间。但是,如果我两个脚本都一个接一个地运行,那么多处理的效果会更差。
class Base():
def __init__(self):
...
def my_method(self):
...
def my_method(self):
...
test=Base()
"Multiprocessing part"
def multiprocessing_func(i,returner):
returner[i]=test.my_method()
if __name__ == '__main__':
starttime = time.time()
manager = multiprocessing.Manager()
returner=manager.dict()
processes = []
for i in range(0,10):
p = multiprocessing.Process(target=multiprocessing_func,args= (i,returner))
processes.append(p)
p.start()
for process in processes:
process.join()
print('Multi Core Process took {} seconds'.format(time.time() - starttime))
a=returner.values()
"Single processing part calling the same method through another method"
data=test.standardize(Base.my_method,10)
该示例基本上只是一个循环,可以多次调用同一方法。
简单的单个处理每个循环大约需要10秒,而10个循环大约需要110秒。 多处理可以在14秒内运行全部10个。
但是,如果一个接一个地运行,则单个处理仍将具有相同的性能,而多处理部分则需要130-160秒才能运行。
那是为什么? P.s.预先谢谢你