Это больше вопрос дизайна, чем скорость (общая память быстрее ), доменные сокеты, безусловно, больше в стиле UNIX и делают намного меньше проблем. С точки зрения выбора знаю заранее:
Преимущества доменных сокетов
- блокирующий и неблокирующий режим и переключение между ними
- вам не нужно освобождать их, когда задачи завершены
Недостатки доменных сокетов
- должен читать и писать линейно
Преимущества общей памяти
- Нелинейное хранилище
- никогда не заблокирует
- несколько программ могут получить к нему доступ
Недостатки общей памяти
- нужна реализация блокировки
- требуется ручное освобождение, даже если оно не используется какой-либо программой
Это все, что я могу думать сейчас. Тем не менее, я бы выбрал доменные сокеты в любой день - не говоря уже о том, что намного проще, чем переопределить их для распределенных вычислений. Увеличение скорости совместно используемой памяти будет потеряно из-за необходимости безопасного дизайна. Однако, если вы точно знаете, что делаете, и используете правильные вызовы ядра, вы можете добиться большей скорости с помощью совместно используемой памяти.