Velocidad de comunicación, TCP / IP vs serie [cerrado]

-2

Estoy usando un torniquete usando la comunicación TCP / IP (cable RJ-45) con mi aplicación. Y se necesitan unos 20 minutos para finalizar algunas funciones (como: Selecciona en la base de datos y configura la configuración de la dll del propio torniquete).

La misma aplicación, con la misma base de datos, pero que usa un tipo de comunicación en serie (puerto RS-232). Y está tomando 4minuts.

Mi duda es:

Las aplicaciones tienen solo 2 o 3 valores diferentes en las configuraciones, solo para indicar a mi aplicación cuál es tcp / ip o serial. ¿Por qué esta gran diferencia de rendimiento?

ACTUALIZACIÓN

Déjame dar una mejor explicación.
Este torniquete se coloca en la entrada de un CLUB. Necesito este torniquete para trabajar fuera de línea, por lo que necesito exportar la información de los usuarios, hace muchas verificaciones para verificar si los usuarios tienen permiso o no para ingresar al club. Esta exportación de información de mi base de datos (PC) al búfer del torniquete es un poco larga. Se necesitan 4 minutos para terminar de usar la comunicación Serial-RS232 y 30 minutos cuando se usa TCP/IP . Necesito saber si es normal o no.

    
pregunta PlayHardGoPro

1 respuesta

3

Aunque Ethernet es más rápido que una interfaz RS-232 típica para mover grandes cantidades de datos, en realidad puede ser más lento para la comunicación interactiva rápida de mensajes cortos donde el próximo elemento no comenzará hasta que el anterior esta terminado.

Particularmente si está utilizando TCP, una de las optimizaciones de velocidad / compartición llamada algoritmo de Nagle puede terminar ralentizando los intercambios enérgicos insertando 200 ms de retardo antes del acuse de recibo. Eso limita ciertos tipos de intercambios a aproximadamente 5 mensajes por segundo, lo que en un caso patológico de un esquema de comunicación mal adaptado a esto se suma rápidamente a grandes cantidades de tiempo. Dependiendo de los detalles de los sistemas, la desactivación puede o no ser posible.

Otra posibilidad es que esté configurando y eliminando la conexión para cada una de las largas listas de operaciones.

Editar: suena como si estuvieras usando una DLL proporcionada por el proveedor del dispositivo para hacer el acceso, por lo que es posible que no te des cuenta de lo que realmente está pasando por el cable. Sería una buena idea configurar un rastreador de paquetes en la máquina que está hablando con el dispositivo, en particular, observe las marcas de tiempo de los paquetes y vea si puede descubrir dónde hay retrasos en el tráfico, probablemente en una operación que Se repite cientos de veces.

    
respondido por el Chris Stratton

Lea otras preguntas en las etiquetas