Я написал этот фрагмент кода, чтобы протестировать многопроцессорность Python на своем компьютере :
from multiprocessing import Pool
var = range(5000000)
def test_func(i):
return i+1
if __name__ == '__main__':
p = Pool()
var = p.map(test_func, var)
. Я замерил это с помощью команды времени Unix, и результаты были:
real 0m2.914s
user 0m4.705s
sys 0m1.406s
Затем, используя те же var
и test_func()
, я рассчитал:
var = map(test_func, var)
и результаты были
real 0m1.785s
user 0m1.548s
sys 0m0.214s
Разве многопроцессорный код не должен быть намного быстрее, чем старый добрый map
?