Al seleccionar su IPC, debe considerar las causas de las diferencias de rendimiento, incluidos los tamaños de búfer de transferencia, los mecanismos de transferencia de datos, los esquemas de asignación de memoria, las implementaciones de mecanismos de bloqueo e incluso la complejidad del código.
De los mecanismos IPC disponibles, la elección del rendimiento a menudo se reduce a sockets de dominio Unix o canalizaciones con nombre (FIFO). Leí un documento sobre Análisis de rendimiento de varios mecanismos para la comunicación entre procesos que indica que los sockets de dominio Unix para IPC pueden proporcionar el mejor rendimiento. He visto resultados contradictorios en otros lugares que indican que las tuberías pueden ser mejores.
Cuando envío pequeñas cantidades de datos, prefiero canalizaciones con nombre (FIFO) por su simplicidad. Esto requiere un par de canalizaciones con nombre para la comunicación bidireccional. Los sockets de dominio Unix requieren un poco más de tiempo de configuración (creación de socket, inicialización y conexión), pero son más flexibles y pueden ofrecer un mejor rendimiento (mayor rendimiento).
Es posible que deba ejecutar algunos puntos de referencia para su aplicación/entorno específico para determinar qué funcionará mejor para usted. Según la descripción proporcionada, parece que los sockets de dominio de Unix pueden ser los más adecuados.
Guía de Beej para Unix IPC es bueno para comenzar con Linux/Unix IPC.
Yo optaría por los sockets de dominio de Unix:menos gastos generales que los sockets IP (es decir, sin comunicaciones entre máquinas) pero, por lo demás, la misma comodidad.