У мене є програма Java, яка підключається через сокет TCP до "сервера", розробленого в C / C ++.
обидва додатки та сервер працюють на одній машині, вікні Solaris (але ми плануємо врешті перейти на Linux). тип обміну даними - це прості повідомлення (вхід, вхід ACK, потім клієнт щось запитує, сервер відповідає). кожне повідомлення становить близько 300 байт.
В даний час ми використовуємо Sockets, і все в порядку, однак я шукаю більш швидкий спосіб обміну даними (нижча затримка), використовуючи методи IPC.
Я досліджував мережу і придумав посилання на наступні технології:
- спільна пам'ять
- труби
- черги
- а також те, що називається DMA (прямий доступ до пам'яті)
але я не міг знайти належного аналізу їхніх виступів, а також як їх впровадити як у JAVA, так і в C / C ++ (щоб вони могли поговорити один з одним), за винятком хіба що труби, яку я міг би уявити, як це зробити.
хтось може прокоментувати результати та ефективність кожного методу в цьому контексті? будь-який вказівник / посилання на корисну інформацію про реалізацію?
РЕДАКТУВАННЯ / ОНОВЛЕННЯ
слідуючи коментарів та відповідей, які я отримав тут, я знайшов інформацію про Unix доменних сокетів, які, здається, побудовані просто над трубами, і врятують мені весь стек TCP. це конкретна платформа, тому я планую тестувати її на JNI або на джудах, або на junixsocket .
Наступними можливими кроками буде пряма реалізація труб, а потім спільна пам'ять, хоча мене попередили про додатковий рівень складності ...
спасибі за вашу допомогу