В многопроцессорной среде spawn процесс для Python3 загружает внутреннюю функцию в модуль для выполнения - PullRequest
0 голосов
/ 31 августа 2018

Пожалуйста, обратите внимание, все описание ниже w.r.t. многопроцессорный метод spawn (для совместимости с Windows).

Когда для многопроцессорной обработки задан метод «порождение», из основного файла загружается новый процесс. Это одна из первых сведений, которую можно найти при поиске в Интернете.

Я пытаюсь копнуть глубже и ускорить загрузку нового Процесса (всякий раз, когда он создается).
Вот несколько идей о том, как устроен мой проект:

<root>
<root>/main.py

<root>/modules/__init__.py
<root>/modules/app/__init__.py
<root>/modules/app/app.py

<root>/modules/app/middleware/__init__.py
<root>/modules/app/middleware/middleware.py

Теперь, когда я пытаюсь создать процесс внутри middleware.py, он пытается загрузить все из main.py (и загружается множество ненужных модулей, что замедляет процесс загрузки процесса в middleware.py ).

В моем коде много дополнительных библиотек также импортированы в main.py и app.py, что замедляет первую загрузку процесса, созданного в middleware.py. Но эти дополнительные модули не требуются для запуска процесса, созданного в middleware.py

1) Как я могу сделать загрузку middleware.py максимально быстрой (во время первого запуска Process). И возможно ли напрямую загрузить модуль промежуточного программного обеспечения в этом новом процессе, вместо того, чтобы загружать все из main.py?

2) Я экспериментировал, условно не загружая app.py внутри main.py (и, следовательно, middleware.py) всякий раз, когда main.py запускается как __mp_main__. Я ожидал, что это приведет к тому, что middleware.py никогда не будет загружен в дочерний процесс. Но я все еще замечаю, что middleware.py загружается. Как это возможно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...