前面转载了一篇关于Python并行执行for循环文章,写了个简单的例子。
使用 timeit 模块计算运行时间
使用 operator 模块判断返回值是否相同。
import multiprocessing
import timeit
import operator
def do_something(x):
v = pow(x, 2)
return v
if __name__ == '__main__':
a =[]
start = timeit.default_timer()
for i in range(1, 100000000):
a.append(do_something(i))
end = timeit.default_timer()
print('single processing time:', str(end-start), 's')
print(a[1:10])
# revise to parallel
items = [x for x in range(1, 100000000)]
p = multiprocessing.Pool(4)
start = timeit.default_timer()
b = p.map(do_something, items)
p.close()
p.join()
end = timeit.default_timer()
print('multi processing time:', str(end-start),'s')
print(b[1:10])
print('Return values are all equal ?:', operator.eq(a, b))
输出结果:
single processing time: 53.43800377573327s
[4, 9, 16, 25, 36, 49, 64, 81, 100]
multi processing time: 26.168114312830433s
[4, 9, 16, 25, 36, 49, 64, 81, 100]
Return values are all equal ?: True
版权声明:本文为qq_23869697原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。