Översikt över prestanda och grunder för Windows-appar

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.

Förbättra winUI 3-appens prestanda

För en WinUI 3-app som skapats med Windows App SDK följer du det här arbetsflödet för att förbättra startåtgärder och vardagliga interaktioner. Använd mått för att välja en optimering och följ sedan den länkade vägledningen för implementeringsinformation.

Mät en baslinje

Välj ett startscenario och frekventa interaktioner, till exempel navigering eller rullning, och ange mätbara prestandamål. Mät en releaseversion på en representativ hårdvara. Registrera kall och varm start separat, inklusive när appen blir meningsfullt interaktiv snarare än bara när dess fönster visas.

Använd WinUI 3-prestandaprofilering för att hitta dyra gränssnittsramar och undersöka cpu-kostnaden. Om du behöver hjälp med att välja en profilerare kan du läsa Välja mellan Visual Studio Performance Profiler och Windows Performance Toolkit.

Förbättra uppstart

Identifiera initieringen och UI-skapandet som måste slutföras innan användaren kan interagera med appen. Skjut upp icke-nödvändigt arbete och läs in ytterligare data gradvis, utan att behandla en laddningsindikator som att uppstarten är slutförd.

Börja med metodtips för start av WinUI-app. Om XAML-skapande är en flaskhals följer du Optimera XAML-inläsning för minskning av element, uppskjuten inläsning och resurshantering.

Förbättra svarstider och återgivning

Välj den vägledning som motsvarar flaskhalsen i dina mätningar:

Symptom Riktlinjer
Inmatning eller navigering stannar upp medan appen läser in data eller beräknar resultat Håll användargränssnittstråden dynamisk, inklusive asynkrona I/O-uppdateringar, bakgrundsberäkning och UI-tråduppdateringar.
Layouten tar för lång tid, särskilt med upprepade mallar Optimera XAML-layouten för att minska onödig layoutstruktur.
Listor eller rutnät rullar långsamt eller skapar för många element Optimera ListView och GridView för UI-virtualisering och mindre objektmallar; använd datavirtualisering när det är inläsningen av själva data som är flaskhalsen.

Mät igen och förhindra regressioner

Upprepa samma scenarier under jämförbara förhållanden efter varje ändring och jämför resultatet med baslinjen. Kontrollera start- och interaktionstider vid sidan av minnes- och CPU-användning: en förbättring på ett område kan öka kostnaderna någon annanstans.

Behåll måtten som regressionskontroller för framtida ändringar. Använd Plan and measure app performance (Planera och mäta appprestanda ) för att förfina dina mål och instrumentation när appen utvecklas.

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

Prestanda är måttet på hur effektivt programmet använder systemets resurser för att göra det du har utformat det för. 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ätverks- eller lagringsanvändningen 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: Välja mellan Visual Studio Performance Profiler och Windows Performance Toolkit.

Visual Studio-ikon 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.

Ikon för Windows Analyzátor výkonu Windows Performance Toolkit

Windows Performance Recorder och Windows Analyzátor výkonu 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 kommer igång.

PerfView-ikon PerfView

PerfView är ett övervaknings- och analysverktyg med öppen källkod som skapats av .NET-teamet för att undersöka prestandaproblem med .NET. 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.

Gemenskap 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.