Programbeteende

En annan aspekt av programutvecklingen att tänka på är skillnaden i beteende mellan lokala åtgärder eller intradatoråtgärder och beteende när åtgärder utförs mellan två nätverksbaserade datorer. Det finns programbeteenden som kan fungera bra på en lokal dator, men när de körs i ett nätverk orsakar det betydande prestandaförsämring och resursförbrukning. Följande programbeteenden bör undvikas när du utvecklar Windows Sockets-program.

Beteenden att undvika

  • Chattiga program.

    Vissa program utför många små transaktioner. I kombination med nätverkskostnaderna som är associerade med varje sådan transaktion multipliceras effekten. I nätverk kan små transaktioner förbruka så många resurser och lika mycket tid som stora transaktioner. En bättre metod är att kombinera många små transaktioner till en enda stor transaktion.

  • Serialiserade transaktioner.

    Onödig serialisering av transaktioner kan leda till dåliga prestanda och påverka skalbarheten. Till exempel tar 1 000 serialiserade transaktioner minst 1 000 * RTT att slutföra. En bättre metod är att köra orelaterade transaktioner parallellt. När serialiserade program kombineras med chattiga program kan svarstiden hämmas allvarligt.

    Not

    Det kan vara svårt att deserialisera ett program korrekt. Om det är för svårt att byta från serialiserad till parallell kan du överväga att kombinera flera transaktioner till färre stora transaktioner.

     

  • Fetttransaktioner.

    Program som skickar onödiga byte i nätverket betraktas som feta program. Program som skickar onödiga byte i nätverket ökar nätverkskostnaderna och prestandan hämmas. Den här situationen kommer ofta från ineffektiva datastrukturer eller ineffektiv dataströmning. Du kan åtgärda detta genom att optimera datastrukturer eller överväga att använda komprimering.

I följande avsnitt beskrivs de aspekter av programutveckling som du bör tänka på.

Windows Sockets-program med höga prestanda