Комментарии 7
А в каком формате гоняются данные по именованным каналам? Если свой формат сообщений, то их ещё надо расспарсить. Если сырые данные — то всё равно надо разделять пакеты данных друг от друга, плюс накладные расходы на прочитать из канала и записать себе в процесс.
0
Скорость в несколько ГБ в секунду вы получите только если будете писать потоком в одну сторону и правильно подберете размер буфера (порядка 16К за раз). При обмене сообщениями размером ~100Б получите скорость на порядок меньше. Для десктопных приложений, и VS возможно это не критично, но вы все равно получите колоссальный оверхед по сравнению с прямым доступом в память. Любая запись в пайп это тяжеловесный системный вызов, поэтому переживать по поводу мьютексов действительно не стоит (но не потому что они такие быстрые). Так что не вводите людей в заблуждение. А VS мог бы и через файлы на ssd с таким же успехом обмениваться без особых «тормозов»
0
Интересная статья, только я бы не стал переводить на русский устоявшийся термин Named Pipes.
0
Я гонял через pipe между двух процессов несжатое full-hd видео. Все было ok, но меня напрягали огромные цифры в колонке I/O в process hacker-е. Немного переделал. Один процесс создает именованный memory mapped файл и отдает его имя через pipe. Так получилось даже быстрее, т.к. я подготавливал все данные в этом файле и весь блок (разжатый full-hd кадр) без копирования как есть отправлялся в другой процесс.
0
хочу отметить, что максимальная скорость передачи между процессами может быть больше скорости оперативной памяти. всё дело в том, что на самом деле копировать данные нет необходимости, достаточно передать только указатель.Но из-за безопасности в лоб так сделать нельзя, только через разделяемую память. К сожалению у меня всё руки не доходят выложить свою библиотеки высокоскоростной передачи данных между процессами(скорость равна размер блока данных/(скорость вызова 2 мютексов и 1 события)).
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
О производительности именованных каналов в многопроцессных приложениях