Revisione 2: riprogettazione per un minor numero di connessione
In questa revisione l'applicazione di esempio viene riprogettata per eliminare le connessioni non necessarie.
Avviso
Questo esempio dell'applicazione offre anche prestazioni intenzionalmente scarse, per illustrare i miglioramenti delle prestazioni possibili con le modifiche apportate al codice. Non usare questo esempio di codice nell'applicazione; è solo a scopo illustrativo.
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 );
Problemi rimanenti
Le modifiche apportate alla revisione 2 hanno riprogettato l'applicazione per effettuare una sola connessione per ogni aggiornamento. L'applicazione include ancora i problemi di prestazioni seguenti:
- L'applicazione è ancora serializzata e chatty.
- L'applicazione ha ancora un design grasso; ci sono molti invii che non richiedono alcuna operazione in questa progettazione.
- Gli invii sono ancora solo 3 byte, ovvero un flusso di streaming scarso.
Metriche delle prestazioni chiave
Le metriche delle prestazioni seguenti sono espresse in Round Trip Time (RTT), Goodput e Protocol Overhead. Per una spiegazione di questi termini, vedere l'argomento Terminologia di rete .
Questa versione riflette le metriche delle prestazioni seguenti:
- Tempo cella - 1*RTT
- Goodput - 4 byte/RTT
- Sovraccarico del protocollo - 96,8%
Argomenti correlati