Dela via


översikt över Windows applikationsprestanda och grundprinciperna

Att förbättra prestanda och grunderna i ditt program ger det en känsla av polering och hantverk, samtidigt som du sparar dina kunder tid, pengar, batteritid och utvecklingsarbete. Din app förbrukar mindre ström, förbättrar batteritiden och minskar koldioxidutsläppen. Appar körs smidigare på billigare maskinvara. Kundernas produktivitet ökar.

Den här sidan innehåller en översikt över teknikerna och utvecklingsverktygen för att mäta, förstå och förfina prestanda för ditt Windows-program. Om du skriver ett UWP-program bör du även läsa dokumentationen om UWP-prestanda .

Vad är programprestanda och varför är det viktigt?

Prestanda är måttet på hur effektivt applikationen använder systemets resurser för att utföra det du har designat den att göra. Den omfattar olika aspekter av hur programmet interagerar med den underliggande enheten, inklusive:

  • CPU-användning
  • Minnesförbrukning
  • Strömförbrukning
  • Användning av nätverk och lagring
  • Animeringsprestanda

Alla dessa egenskaper har ett kostnadselement associerat med dem: till exempel hur mycket PROCESSOR använder mitt program? Hur mycket av användarens bandbredd kommer den att förbruka? Hur snabbt läses den här sidan av mitt program in?

Användarna förväntar sig prestanda som en grundläggande egenskap för den programvara de använder. De vill att deras program ska vara dynamiska och använda systemets resurser på ett effektivt sätt. Program som uppvisar dåliga prestanda orsakar frustration, vilket kan leda till minskat användarengagemang. För att ge dina kunder bästa möjliga upplevelse är det därför viktigt att göra prestanda till en regelbunden del av ditt utvecklingsarbetsflöde.

När ska du mäta programmets prestanda?

Programprestanda kan sträcka sig över många steg i utvecklingsprocessen. Det påverkar allt från val av datastruktur till den teknik som du väljer för att skapa ditt program. Tänk på prestanda när du utvecklar ditt program och planera för regelbundna prestandatester som en del av uppdateringen och underhållet av ditt program.

Så här närmar du dig prestandamätning

Här följer några förslag på hur du kan testa ditt program för prestanda.

  • Utnyttja dina kunskaper om ditt program. Genom att förstå de vanligaste scenarierna för dina användare kan du ägna tid åt att optimera rätt saker. Om du har data tillgängliga om hur användare interagerar med ditt program, skulle det vara ett bra tillfälle att titta på det.
    • Var tillbringar användarna större delen av sin tid?
    • Vilka är de viktigaste sakerna som en kund kommer att göra med din programvara?
    • Vilka är programmets maskinvarukrav?
  • Ange prestandamål för dina viktigaste användarscenarier.
  • Var noggrann med vad du försöker optimera. Är det CPU? Batteri? Nätverksdataflöde?
  • Välj de verktyg som du ska använda för att göra mätningar.
  • Tillämpa ett vetenskapligt tänkesätt vid testning. Skapa riktmärken i en kontrollerad miljö. Sedan gör du din ändring och mäter om för att se hur dina ändringar har påverkat programmets beteende.
  • Lägg till regressionstestning i testmiljön. Detta säkerställer att dina prestandamått inte går tillbaka över tid.

Sammanvävda mått

Du fokuserar vanligtvis på ett prestandaområde under analysen, men tänk på att områden ofta är sammanflätade. En förbättring i ett område kan leda till förbättringar i andra områden.

Till exempel är det ofta ett synkroniseringsproblem att åtgärda strömförbrukningen. Om du minskar minnesanvändningen kan du minska den tid som spenderas med processorn. Det kan också finnas situationer där ytterligare resurser som spenderas i ett område ger en mer effektfull förbättring i ett annat område, till exempel kan ökad minnesförbrukning minska nätverket eller storage användning genom cachelagring.

Beslutet att göra en ändring beror på vad som är viktigast för dina kunder.

Vilka verktyg kan jag använda för att mäta programprestanda?

Det finns en mängd olika alternativ för att mäta prestanda för ditt Windows-program.

Om du inte är säker på vilka verktyg du ska välja kan du läsa artikeln: Choosing mellan Visual Studio Performance Profiler och Windows Performance Toolkit.

Visual Studio Icon Visual Studio Performance Profiler

Visual Studio erbjuder verktyg som hjälper dig att övervaka ditt program och ge dig insikter inom din källa. Gå till resurserna nedan för att lära dig hur du kan använda dessa verktyg för att optimera koden direkt från utvecklingsmiljön.

Windows Performance Analyzer Icon Windows Performance Toolkit

Windows Performance Recorder och Windows Performance Analyzer aktivera detaljerad övervakning och analys av ditt program och hela systemet med hjälp av Event Tracing for Windows (ETW). Se, länkarna nedan om hur du kan komma igång.

PerfView-ikon PerfView

PerfView är ett open source övervaknings- och analysverktyg som skapats av .NET-teamet för att undersöka .NET prestandaproblem. På grund av dess förmåga att avkoda .NET symboler och hanterat minne är det ett idealiskt val för hanterade program.

SizeBench-ikon SizeBench

SizeBench är ett verktyg som hjälper dig att undersöka och minska storleken på dina kompilerade interna kodbinärfiler (DLL:er, EXE:er och andra PE-filer).

Ytterligare resurser

Bloggar och nyheter

Gå bakom kulisserna med utvecklarbloggar skrivna av våra prestandaexperter för att skapa den bästa versionen av din app.

Community och support

  • Prestandaproblem i ditt kompilera-debugga-testa-loop? Rapportera dem i lagringsplatsen Windows Dev Performance på GitHub.

Prestanda och hållbarhet

Prestandatekniken samverkar direkt med den hållbara programvarurörelsen. De flesta elnät bränner fossila bränslen för att generera el. När programmet körs på en dator förbrukar det inkrementell energi som kan vara liten för en enskild användare, men som läggs till när användarbasen växer.

Är du intresserad av att lära dig hur prestandateknik samverkar med hållbarhet? Kolla in principerna för green software engineering och Microsofts blogg om hållbar programvara.

Vår färdplan för innehåll

Prestanda kan vara en svår del av utvecklingsprocessen utan rätt vägledning. Att se till att rätt dokumentation är tillgänglig för apputvecklare är nyckeln till att skapa snabbare appar. Färdplanen nedan beskriver nästa sidor som ska läggas till i den här dokumentuppsättningen och i den ordning de publiceras. Om du ser något du gillar eller något som saknas kan du meddela oss på GitHub via feedbacklänkarna längst ned på den här sidan! Vårt mål är att sammanställa en väl sammanhållen och informativ dokumentsamling för appens prestanda som uppfyller dina behov, så vi vill gärna höra från dig. Välkommen att skicka feedback för den här sidan nedan med dina rekommendationer för vad du vill se när det gäller Windows-programprestanda.

Ämne Beskrivning
Introduktion till prestandaområden Beskrivningar av vad prestanda innebär i samband med CPU, minne, GPU osv.
Identifiera vad som ska mätas Beroende på din arbetsbelastning, miljö och andra faktorer kan vissa prestandaområden vara mer i fokus än andra. Lär dig vad du ska mäta och när med det här dokumentet
Prestandatestningscykel Steg med oss genom livscykeln för prestandatestning, vilket innefattar att konfigurera din testmiljö, analysera dina resultat och göra produktförbättringar
Förstå de olika prestandaverktygen Det här dokumentet introducerar fler prestandaverktyg och går över användningsfallen och metodtipsen för att använda dem
Fallstudier En serie scenarier från slutpunkt till slutpunkt och deras resor genom prestandatestningscykeln