Compartir a través de


Comportamiento de la aplicación

Otro aspecto del desarrollo de aplicaciones que se debe tener en cuenta es la diferencia de comportamiento entre las operaciones locales o intracomputeras y el comportamiento cuando las operaciones tienen lugar entre dos equipos en red. Hay comportamientos de aplicación que pueden funcionar bien en un equipo local, pero cuando se ejecutan a través de una red, provocan una degradación significativa del rendimiento y el consumo de recursos. Se deben evitar los siguientes comportamientos de aplicación al desarrollar aplicaciones de Windows Sockets.

Comportamientos que se deben evitar

  • Aplicaciones chatty.

    Algunas aplicaciones realizan muchas transacciones pequeñas. Cuando se combina con la sobrecarga de red asociada a cada transacción de este tipo, se multiplica el efecto. En las redes, las transacciones pequeñas pueden consumir tantos recursos como mucho tiempo como transacciones grandes. Un mejor enfoque es combinar muchas transacciones pequeñas en una sola transacción grande.

  • Transacciones serializadas.

    La serialización innecesaria de transacciones puede dar lugar a un rendimiento deficiente y afectar a la escalabilidad. Por ejemplo, 1000 transacciones serializadas tardan al menos 1000 * RTT en completarse. Un mejor enfoque es ejecutar transacciones no relacionadas en paralelo. Cuando las aplicaciones serializadas se combinan con aplicaciones chatty, la capacidad de respuesta se puede dificultar seriamente.

    Nota

    La deserialización correcta de una aplicación puede ser difícil. Si cambiar de serializado a paralelo resulta demasiado difícil, considere la posibilidad de combinar varias transacciones en menos transacciones grandes.

     

  • Transacciones fat.

    Las aplicaciones que envían bytes innecesarios en la red se consideran aplicaciones fat. Las aplicaciones que envían bytes innecesarios en la red aumentan la sobrecarga de red y el rendimiento se ve obstaculizado. Esta situación suele provenr de estructuras de datos ineficaces o de streaming de datos ineficaz. Para solucionar esto, optimice las estructuras de datos o considere la posibilidad de usar la compresión.

En las secciones siguientes se abordan los aspectos del desarrollo de aplicaciones que se deben tener en cuenta.

Aplicaciones de Windows Sockets de alto rendimiento