Я возился с многопроцессорной библиотекой Python, и, хотя она предоставляет невероятно простой в использовании API, ее документация не всегда ясна.В частности, аргумент 'maxtasksperchild', переданный экземпляру класса Pool, я нахожу очень запутанным.
Следующее непосредственно взято из документации Python (3.7.2):
maxtasksperchild - это число задач, которые рабочий процесс может выполнить до того, как он завершится и будет заменен новым рабочим процессом, чтобы освободить неиспользуемые ресурсы.Maxtasksperchild по умолчанию - None, что означает, что рабочие процессы будут жить столько же времени, сколько и пул.
Выше приведено больше вопросов для меня, чем ответов.Это плохо для рабочего процесса, чтобы жить так долго, как пул?Что делает рабочий процесс «свежим» и когда это желательно?В общем, когда вам следует явно установить значение maxtasksperchild вместо того, чтобы оставить его по умолчанию равным None, и что считается наилучшей практикой для максимизации скорости обработки? Теперь я понимаю, что делает и представляет кусочек.Поскольку предоставление значения для размера фрагмента влияет на количество «заданий», мне было интересно, следует ли принимать во внимание какие-либо соображения относительно их зависимости для обеспечения максимальной производительности?
Спасибо!