Каков самый быстрый способ асинхронной связи между процессами Python?Python

Программы на Python
Ответить
Гость
 Каков самый быстрый способ асинхронной связи между процессами Python?

Сообщение Гость »


Я создаю быстрое асинхронное приложение на Python. Мне нужно взаимодействовать между процессами (либо внутри одного родительского процесса, либо через отдельные скрипты Python) с низкой и стабильной задержкой, асинхронно (поскольку принимающему процессу необходимо переключиться на другие задачи, когда очередь связи пуста).

Как это сделать быстрее всего? Многопоточность невозможна, поскольку время от времени процессы могут быть связаны с процессором. Очереди многопроцессорной обработки синхронны; aioprocessing работает слишком медленно. Самый быстрый метод, который я нашел, — это нулевой IPC PUSH/PULL через библиотеку asyncio pyzmq с задержкой около 50 микросекунд (что подразумевает пропускную способность около 20 000 сообщений в секунду). Я бы хотел сократить это время до 5 микросекунд, если это возможно. Я считаю, что файлы, отображаемые в памяти, являются самым быстрым протоколом связи, но я не знаю, как взаимодействовать асинхронно в стиле сообщения/очереди, который будет предупреждать принимающий процесс о наличии новой задачи для обработки или о том, возможно ли это вообще. Я пробовал различные подходы, но ни один из них не дал таких результатов по задержке и пропускной способности, которые могли бы приблизиться к файлам с отображением в памяти.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»