Comportement de l’application

Un autre aspect du développement d’applications à prendre en compte est la différence de comportement entre les opérations locales ou intraordinateurs et le comportement lorsque des opérations ont lieu entre deux ordinateurs en réseau. Il existe des comportements d’application qui peuvent fonctionner de manière acceptable sur un ordinateur local, mais qui, lorsqu’ils sont exécutés sur un réseau, entraînent une dégradation significative des performances et la consommation des ressources. Les comportements d’application suivants doivent être évités lors du développement d’applications Windows Sockets.

Comportements à éviter

  • Applications bavards.

    Certaines applications effectuent de nombreuses petites transactions. Lorsqu’il est combiné avec la surcharge réseau associée à chaque transaction de ce type, l’effet est multiplié. En réseau, les petites transactions peuvent consommer autant de ressources et autant de temps que les transactions volumineuses. Une meilleure approche consiste à combiner de nombreuses petites transactions en une seule grande transaction.

  • Transactions sérialisées.

    La sérialisation inutile des transactions peut entraîner des performances médiocres et affecter la scalabilité. Par exemple, 1 000 transactions sérialisées prennent au moins 1 000 * RTT pour se terminer. Une meilleure approche consiste à exécuter des transactions non liées en parallèle. Lorsque des applications sérialisées sont combinées avec des applications bavards, la réactivité peut être sérieusement entravée.

    Notes

    La désérialisation correcte d’une application peut être difficile. Si le passage de sérialisé à parallèle s’avère trop difficile, envisagez de combiner plusieurs transactions en moins de transactions volumineuses.

     

  • Transactions fat.

    Les applications qui envoient des octets inutiles sur le réseau sont considérées comme des applications fat. Les applications qui envoient des octets inutiles sur le réseau augmentent la surcharge du réseau et les performances sont entravées. Cette situation provient souvent de structures de données inefficaces ou de streaming de données inefficaces. Pour remédier à ce problème, optimisez les structures de données ou envisagez d’utiliser la compression.

Les sections suivantes traitent des aspects du développement d’applications à prendre en compte.

Applications Windows Sockets hautes performances