Révision 2 : Refonte pour moins de connexions
Dans cette révision, l’exemple d’application est repensé pour éliminer les connexions inutiles.
Avertissement
Ces exemples de l’application fournissent également des performances intentionnellement médiocres, afin d’illustrer les améliorations de performances possibles avec les modifications apportées au code. N’utilisez pas cet exemple de code dans votre application ; c’est à des fins d’illustration uniquement.
ComputeNext( Map );
bind( s, ... );
connect( s, ... );
for(int i=0 ; i < ROWS ; ++i)
for(int j=0 ; j < COLS ; ++j)
{
BYTE tmp[3];
tmp[0] = i;
tmp[1] = j;
tmp[2] = Map[i][j];
send( s, tmp, 3 );
recv( s, &byRet, 1 );
}
closesocket( s );
Problèmes restants
Les modifications apportées à Révision 2 ont repensé l’application pour n’effectuer qu’une seule connexion par mise à jour. L’application inclut toujours les problèmes de performances suivants :
- L’application est toujours sérialisée et bavard.
- L’application a toujours un design gras; il existe de nombreux envois qui ne nécessitent aucune opération dans cette conception.
- Les envois ne sont toujours que de 3 octets, ce qui est une mauvaise diffusion en continu.
Métriques de performances clés
Les métriques de performances suivantes sont exprimées en temps d’aller-retour (RTT), Goodput et Surcharge de protocole. Pour obtenir une explication de ces termes, consultez la rubrique Terminologie du réseau .
Cette version reflète les métriques de performances suivantes :
- Durée de cellule : 1*RTT
- Goodput — 4 octets/RTT
- Surcharge de protocole : 96,8 %
Rubriques connexes