Ver Mensaje Individual
  #4 (permalink)  
Antiguo 01/06/2015, 09:22
eferion
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 11 meses
Puntos: 204
Respuesta: Aplicación cliente servidor dudas

Cita:
Iniciado por Demix Ver Mensaje
El tema del poder del servidor lo veree a su tiempo (ya de por si no se si alguien lo va a jugar jajaja), mi intención es tratar de hacerlo lo mas eficiente posible.
Yo no pondría especial incapié en el rendimiento antes de tener el servidor operativo. ¿por qué? pues porque el rendimiento es relativo:

  • más velocidad suele llevar aparejado un mayor consumo de memoria y la memoria disponible suele ser una limitación importante
  • Una mejora de rendimiento en un aspecto suele suponer un peor rendimiento en otros aspectos
  • Muchas veces no es necesario aplicar mejoras
  • Cuanto mayor nivel de optimización más complejo se vuelve el código
Es decir, hasta que no tengas un servidor operativo y hagas pruebas evaluando su uso previsto no vas a ser capaz de identificar las posibles mejoras que pueda necesitar.


Cita:
Iniciado por Demix Ver Mensaje
Con el tema udp, como aseguras el orden de los paquetes??, enviando bits adicionales de control o algo asi?.
Efectivamente. UDP no verifica absolutamente nada, por eso es bastante más rápido que TCP. Es tu responsabilidad incluir los mecanismos de control pertinentes para que la comunicación funcione correctamente.

Cita:
Iniciado por Demix Ver Mensaje
Luego, al procesar los sockets de 5 usuarios, es mejor armar un thread por cada uno o conviene meter todo en un thread y leer todos, ejecutar acciones, leer todos, ejecutar acciones.
Nuevamente, depende... para 5 usuarios puede que no notes la diferencia... pero imagina 50 usuarios... ¿vás a crear un hilo para cada uno? ten en cuenta que el entorno multihilo también lleva aparejado un consumo de recursos... si creas muchos hilos y todos tienen que competir por los recursos del procesador entonces vas a perder un montón de tiempo precisamente en resolver esos conflictos. Lo mismo resulta más conveniente crear un hilo por cada núcleo del procesador y que cada hilo se encargue de un cupo de usuarios... o que el primer hilo disponible se encargue de la siguiente petición pendiente... o... posibilidades existen todas las que quieras.

Pero lo más importante, como ya te he dicho, hasta que no tengas un servidor operativo no vas a ser consciente de las mejoras que vas a necesitar aplicar.

Un saludo