Tengo una aplicación C# simple que usa multidifusión UDP en un escenario de un solo receptor y un solo remitente. El objetivo es obtener la entrega de mensajes lo más rápido posible en un entorno de red local.Rendimiento de multidifusión UDP bajo carga
He utilizado SocketAsyncEventArgs/SendAsync/ReceiveAsync, BeginSend/BeginReceive, Threads/Send/Receive, y he intentado tanto la multidifusión PGM como la UDP.
Cada intento de implementación funciona bien para la entrega de mensajes repetidos hasta alrededor de 1000 mensajes con envío local, recepción local. Después de eso, el rendimiento comienza a disminuir exponencialmente. Donde 1000 mensajes toman algunas centésimas de segundo, 10,000 mensajes pueden tomar entre 2 y 10 segundos.
¿Alguien tiene experiencia en multidifusión UDP/PGM de alto rendimiento? ¿Cuál es el mejor diseño para obtener el máximo rendimiento?
actualización
En este momento, es sólo un único programa que se ejecuta localmente - 1 aplicación con 1 emisor y 1 receptor. Los mensajes de prueba son 4 bytes.
Gracias por la información bien pensada. – Anton
Ningún problema en absoluto. Estoy en las trincheras con estas cosas en este momento también. :) –