Кусок кода, который у меня есть, выглядит примерно так:
glbl_array = # a 3 Gb array
def my_func( args, def_param = glbl_array):
#do stuff on args and def_param
if __name__ == '__main__':
pool = Pool(processes=4)
pool.map(my_func, range(1000))
Есть ли способ удостовериться (или поощрять), чтобы разные процессы не получали копию glbl_array, но делили ее. Если нет способа остановить копию, я перейду с memmapped массивом, но мои шаблоны доступа не очень регулярны, поэтому я ожидаю, что массивы memmapped будут медленнее. Выше было похоже на первое, что нужно попробовать. Это на Linux. Я просто хотел получить совет от Stackoverflow и не хочу раздражать системный администратор. Как вы думаете, это поможет, если второй параметр является подлинным неизменяемым объектом, например glbl_array.tostring()
.