Я пытаюсь выполнить IPC между двумя процессами на одном компьютере с Linux в Ruby, и мне нужно оптимизировать решение, насколько это практически возможно.
Я начал с TCPSocket, но вижу, что использование UNIXSocket, вероятно, быстрее, и , возможно, не копирует данные в буферы ядра.
Я читаю ТАКИЕ потоки, и, похоже, интересно взглянуть на mmap. Но для mmap мне нужно: a) установить mmap gem и b) обеспечить блокировку, поскольку несколько клиентских процессов, вероятно, будут пытаться соединиться с процессом сервера (оба работают на одном компьютере).
Мои вопросы:
- Какие еще варианты вы бы порекомендовали?
- Как вы рекомендуете блокировать память с помощью ruby mmap?
- Как числа, если они есть, складываются для UNIXSocket и mmap?