在我的Python代码中,为什么并行比普通代码慢?
我想用Python测试并行代码,所以我编写了以下代码在我的Python代码中,为什么并行比普通代码慢?,python,Python,我想用Python测试并行代码,所以我编写了以下代码 __author__ = 'Zir' import numpy as np from joblib import Parallel, delayed import time def f(x): h = np.random.rand() return x + h if __name__ == '__main__': s1 = time.time() y = Parallel(n_jobs=3)(delayed
__author__ = 'Zir'
import numpy as np
from joblib import Parallel, delayed
import time
def f(x):
h = np.random.rand()
return x + h
if __name__ == '__main__':
s1 = time.time()
y = Parallel(n_jobs=3)(delayed(f)(x) for x in range(100000))
e1 = time.time() - s1
s2 = time.time()
y = []
for x in range(100000):
y.append(f(x))
e2 = time.time() - s2
print e1, e2
输出是这样的:
4.08599996567 0.069993932428
,表示for循环快得多。为什么?您是否尝试过花费更多时间的f?@Kira:创建流程会带来开销。函数越简单,开销就越有可能超过实际计算函数的成本。