Я понимаю, что если разделяемая память используется правильно, она может быть быстрее любого другого IPC. Мой вопрос немного конкретнее: если я переношу многие небольшие пакеты, например, 100 байт, из разных программ в одну основную программу, какую скорость можно ожидать?
Преимущество использования разделяемой памяти будет не так много, потому что в конечном итоге вы получите условные переменные в общей памяти (см. pthread_condattr_setpshared
; кстати, это будет существенная работа по кодированию.) Тогда ваша логика регулируется OS, и он не очень отличается от использования localhost
TCP-соединения, которое имеет разную и быструю реализацию, чем стандартный TCP на большинстве ОС.
Если все в порядке, чтобы полностью полагаться на спин-блокировку на общей памяти, то вы действительно осознаете существенную скорость, например, x3 fold.