Многопроцессорная обработка запущена ( отсюда ).
Раньше использование памяти было почти нулевым, поскольку было создано всего несколько переменных и генератор.С добавлением многопроцессорности использование памяти увеличилось до 12 ГБ ОЗУ.
Теперь мне стало интересно, как я могу сделать этот фрагмент кода более эффективным при использовании памяти и почему он даже нуждается в этоммного.
poss = [x+1 for x in range(20)]
all_rolls = itertools.product(poss, repeat=6)
win = mp.Value('i', 0, lock = True)
draw = mp.Value('i', 0, lock = True)
loose = mp.Value('i', 0, lock = True)
def some_func(roll):
if(comparison on rolls):
with win.get_lock():
win.value += 1
elif(other comparison):
with draw.get_lock():
draw.value +=1
else:
with loose.get_lock():
loose.value +=1
with Pool(8) as p:
p.map(some_func, all_rolls)