Revisión dos: rediseño para menos conexiones
En esta revisión, la aplicación de ejemplo se ha rediseñado para eliminar las conexiones innecesarias.
Advertencia
En este ejemplo de la aplicación también se proporciona un rendimiento intencionadomente deficiente, con el fin de ilustrar las mejoras de rendimiento posibles con los cambios en el código. No use este ejemplo de código en la aplicación; es solo para fines ilustrativos.
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 );
Problemas restantes
Los cambios en la revisión Dos rediseñó la aplicación para realizar solo una conexión por actualización. La aplicación sigue incluyendo los siguientes problemas de rendimiento:
- La aplicación todavía está serializada y chatty.
- La aplicación sigue teniendo un diseño gordo; hay muchos envíos que no requieren ninguna operación en este diseño.
- Los envíos siguen siendo de solo 3 bytes, lo que es un streaming deficiente.
Métricas clave de rendimiento
Las siguientes métricas de rendimiento se expresan en Tiempo de ida y vuelta (RTT), Goodput y Sobrecarga del protocolo. Consulte el tema Terminología de red para obtener una explicación de estos términos.
Esta versión refleja las siguientes métricas de rendimiento:
- Tiempo de celda: 1*RTT
- Goodput: 4 bytes/RTT
- Sobrecarga del protocolo: 96,8 %
Temas relacionados