python性能到底有多差_Python多处理性能差

我试图用多处理模块来加速我的python程序,但我发现它相当慢。

玩具示例如下:import time

from multiprocessing import Pool, Manager

class A:

def __init__(self, i):

self.i = i

def score(self, x):

return self.i - x

class B:

def __init__(self):

self.i_list = list(range(1000))

self.A_list = []

def run_1(self):

for i in self.i_list:

self.x = i

map(self.compute, self.A_list) #map version

self.A_list.append(A(i))

def run_2(self):

p = Pool()

for i in self.i_list:

self.x = i

p.map(self.compute, self.A_list) #multicore version

self.A_list.append(A(i))

def compute(self, some_A):

return some_A.score(self.x)

if __name__ == "__main__":

st = time.time()

foo = B()

foo.run_1()

print("Map: ", time.time()-st)

st = time.time()

foo = B()

foo.run_2()

print("MultiCore: ", time.time()-st)

我的电脑(Windows10,Python3.5)的结果是

地图:0.0009996891021728516

多芯:19.34994912147522

在Linux机器(centos7,python3.6)上也可以看到类似的结果。在

我想这是由进程间对象的酸洗/脱粘引起的?我试图使用管理器模块,但未能使其正常工作。在

任何帮助都将不胜感激。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值