¿Qué tan eficiente es usar sockets cuando se hace IPC en comparación con los tubos con nombre y otros métodos en Windows y Linux?Enchufes en la misma máquina Para Windows y Linux
Ahora mismo, tengo 4 aplicaciones separadas en 4 cajas separadas que necesitan comunicarse. Dos son aplicaciones .NET 3.5 que se ejecutan en Windows Server 2003 R2. Dos son Linux (Suse Linux 10). Generalmente no están vinculados a la CPU. La cantidad de tráfico no es tan grande, pero es muy importante que tenga una baja latencia. Estamos utilizando sockets ahora con Nagle Dis-abled y el parche de inicio lento sles10 instalado en las máquinas Linux.
¿Cuánto de un aumento de velocidad cree que obtendríamos simplemente ejecutando las dos aplicaciones de Windows en el mismo cuadro de Windows y las dos aplicaciones de Linux en el mismo Linux Box y sin cambios de código (es decir, todavía utilizando sockets).
¿El sistema operativo se dará cuenta de que los puntos finales están en la misma máquina y saben que no deben salir a la red con los paquetes? ¿Todavía tendrán que pasar los paquetes por toda la pila de redes? ¿Cuánto más rápido sería si nos tomáramos el tiempo para cambiar a tuberías con nombre o archivos mapeados en memoria o alguna otra cosa?
Esto es fácil de probar. Solo pruébalo. –
1, jeffamaphone: no hay comentarios vagos o evidencia anecdótica importa mucho aquí. Lo que importa es cómo se comportan los * programas de Michael *. –
De acuerdo, debería probarlo. Esa es la única manera de saber con certeza dado todas las diferencias en las redes, configuraciones, etc. Pero sólo estaba esperando que alguien tendría un enlace a alguien que ya ha hecho una prueba muy similar. No me puedo imaginar que la comparación con rigor el desempeño de estas cosas es una idea nueva - Su probablemente han hecho 100 veces por personas que saben mucho más acerca de la creación de redes que yo. –