Сбой трубы с большим объемом данных - PullRequest
0 голосов
/ 16 мая 2019

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

Сначала я использовал очереди для передачи декодированных данных в основной процесс, хотя он работает, у меня есть некоторая производительностьпроблемы, так как у меня есть очень большой объем данных.Я хотел использовать Pipes вместо Queues для улучшения производительности, однако, он зависает без каких-либо ошибок.Что я сделал не так ?Есть ли у Pipe максимальный размер буфера, если да, как я могу его увеличить?

Вот небольшой фрагмент кода, освещающий проблему, с которой я сталкиваюсь.

from multiprocessing import Pipe

pconn, ccon = Pipe()
signal = [-1.4168047904968263e-06]*4096

ccon.send("toto")
print(pconn.recv()) #OK

ccon.send(signal) #this line fails
print(pconn.recv())
...