Identifiera långsamma program

Den här guiden identifierar ett långsamt program som ett Microsoft Windows-program med nedsatt prestanda. Ett långsamt program uppvisar ett eller flera av följande symtom:

  • Processor- och nätverksanvändningen är låg.

    Datorn verkar vänta på något. Ofta väntar programmet på nätverket.

  • Om du inaktiverar Nagle-algoritmen via alternativet TCP_NODELAY socket ökar prestandan.

    Detta anger andra problem och bör inte betraktas som en lösning. Om du stänger av Nagle-algoritmen ökar protokollkostnaderna. Använd inte den här metoden som en korrigering för de brutna programmen – endast som en indikation på att programmet behöver annat arbete för att åtgärda prestandaproblem.

  • Programmet har höga omkostnader.

    Om du vill beräkna omkostnaderna för dina program kan du bestämma hur mycket data du avsåg att överföra i varje riktning. Använd sedan Netstat och lägg till (för Ethernet) 60 byte för varje paket och 500 byte för varje anslutning. Det bästa som kan förväntas för strömning via Ethernet är cirka 6%. För en modemanslutning är den bästa överhead cirka 2%, på grund av att en PPP-länk använder headerkomprimering. Mer information finns i Beräkna omkostnader med Netstat.

  • Programsvaret blir långsammare när anslutningen har en stor RTT.

    Förutsatt att programmet inte närmar sig länkens bandbredd bör en stor RTT ha liten eller ingen effekt. En påtaglig avmattning med en stor RTT är ett tydligt tecken på serialiserad bearbetning och många små transaktioner.

Varje program bör testas i en miljö med en stor RTT. Detta avslöjar de flesta program som lider av dåliga utvecklingsalternativ. Den här testningen kan utföras i flera miljöer, inklusive ett trådlöst LAN-nätverk, en länkfördröjningssimulator eller ett satellitnätverk.

Applikationsbeteende

Windows Sockets-program med höga prestanda

Nagle-algoritm