Общая память или mmap - Linux C / C ++ IPC

Контекст - это межпроцессное взаимодействие, где один процесс («Сервер») должен отправлять структуры фиксированного размера многим слушающим процессам («Клиентам»), работающим на одной машине.

Мне очень удобно делать это в программировании сокетов. Чтобы ускорить обмен данными между сервером и клиентами и уменьшить количество копий, я хочу попробовать использовать Shared Memory (shm) или mmaps.

ОС - RHEL 64bit.

Поскольку я новичок , пожалуйста, подскажите, что мне следует использовать. Я был бы признателен, если бы кто-нибудь мог указать мне на книгу или онлайн-ресурс, чтобы узнать то же самое.

Спасибо за ответы. Я хотел добавить, что сервер (сервер рыночных данных) обычно будет получать данные многоадресной рассылки, что заставит его «отправлять» около 200 000 структур в секунду «клиентам», где каждая структура составляет примерно 100 байт. Превосходит ли реализация shm_open / mmap сокеты только для больших блоков данных или большого объема небольших структур?

15
задан Humble Debugger 29 January 2011 в 23:51
поделиться