.NET Framework prestanda
Om du vill skapa appar med bra prestanda bör du utforma och planera för prestanda precis som du skulle utforma andra funktioner i din app. Du kan använda de verktyg som tillhandahålls av Microsoft för att mäta appens prestanda och, om det behövs, förbättra minnesanvändningen, kodgenomflödet och svarstiden. I det här avsnittet visas de verktyg för prestandaanalys som Microsoft tillhandahåller och länkar till andra ämnen som beskriver prestanda för specifika områden för apputveckling.
Utforma och planera för prestanda
Om du vill ha en bra app måste du utforma prestanda i din app på samma sätt som du utformar andra funktioner. Du bör fastställa de prestandakritiska scenarierna i din app, ange prestandamål och mäta prestanda för dessa appscenarier tidigt och ofta. Eftersom varje app är olika och har olika prestandakritiska körningsvägar kan du maximera produktiviteten genom att bestämma dessa sökvägar tidigt och fokusera dina ansträngningar.
Du behöver inte vara helt bekant med din målplattform för att skapa en högpresterande app. Du bör dock utveckla en förståelse för vilka delar av målplattformen som är kostsamma när det gäller prestanda. Du kan göra detta genom att mäta prestanda tidigt i utvecklingsprocessen.
Ta alltid hänsyn till användarupplevelsen för att fastställa vilka områden som är viktiga för prestanda och för att fastställa dina prestandamål. Starttid och svarstid är två viktiga områden som påverkar användarens uppfattning av din app. Om din app använder mycket minne kan det verka trögt för användaren eller påverka andra appar som körs i systemet, eller i vissa fall kan det misslyckas med Windows Store- eller Windows Phone Store-överföringsprocessen. Om du avgör vilka delar av koden som körs oftare kan du också se till att dessa delar av koden är väl optimerade.
Analysera prestanda
Som en del av din övergripande utvecklingsplan anger du punkter under utvecklingen där du mäter appens prestanda och jämför resultaten med de mål som du angav tidigare. Mät din app i den miljö och maskinvara som du förväntar dig att användarna ska ha. Genom att analysera appens prestanda tidigt och ofta kan du ändra arkitektoniska beslut som skulle vara kostsamma och dyra att åtgärda senare i utvecklingscykeln. I följande avsnitt beskrivs prestandaverktyg som du kan använda för att analysera dina appar och diskutera händelsespårning, som används av dessa verktyg.
Prestandaverktyg
Här är några av de prestandaverktyg som du kan använda med dina .NET Framework appar.
Verktyg | Beskrivning |
---|---|
Visual Studio prestandaanalys | Använd för att analysera CPU-användningen för dina .NET Framework-appar som ska distribueras till datorer som kör Windows operativsystem. Det här verktyget är tillgängligt från felsökningsmenyn i Visual Studio när du har öppnat ett projekt. Mer information finns i Prestandautforskaren. Observera: Använd Windows Phone programanalys (se nästa rad) när du riktar in dig på Windows Phone. |
Windows Phone programanalys | Använd för att analysera processor- och minnesanvändning, överföringshastighet för nätverksdata, appresponsivitet och batteriförbrukning i dina Windows Phone appar. Det här verktyget är tillgängligt från felsökningsmenyn för ett Windows Phone projekt i Visual Studio när du har installerat Windows Phone SDK. Mer information finns i Appprofilering för Windows Phone 8. |
PerfView | Använd för att identifiera processor- och minnesrelaterade prestandaproblem. Det här verktyget använder händelsespårning för Windows (ETW) och CLR-profilerings-API:er för att tillhandahålla avancerade minnes- och CPU-undersökningar samt information om skräpinsamling och JIT-kompilering. Mer information om hur du använder PerfView finns i blogginläggen. Information om minnesspecifika problem finns i Använda PerfView för minnesundersökningar. |
Windows Prestandaanalys | Använd för att fastställa övergripande systemprestanda, till exempel appens minne och lagringsanvändning när flera appar körs på samma dator. Det här verktyget är tillgängligt från nedladdningscentret som en del av Windows Assessment and Deployment Kit (ADK) för Windows 8. Mer information finns i Windows Prestandaanalys. |
Händelsespårning för Windows (ETW)
ETW är en teknik som gör att du kan hämta diagnostikinformation om att köra kod och är viktig för många av de prestandaverktyg som nämnts tidigare. ETW skapar loggar när vissa händelser genereras av .NET Framework appar och Windows. Med ETW kan du aktivera och inaktivera loggning dynamiskt, så att du kan utföra detaljerad spårning i en produktionsmiljö utan att starta om appen. .NET Framework erbjuder stöd för ETW-händelser, och ETW används av många profilerings- och prestandaverktyg för att generera prestandadata. Dessa verktyg aktiverar och inaktiverar ofta ETW-händelser, så det är bra att känna till dem. Du kan använda specifika ETW-händelser för att samla in prestandainformation om vissa komponenter i din app. Mer information om ETW-stöd i .NET Framework finns i ETW-händelser i Common Language Runtime och ETW Events in Task Parallel Library och PLINQ.
Prestanda efter apptyp
Varje typ av .NET Framework app har sina egna metodtips, överväganden och verktyg för att utvärdera prestanda. Följande tabell länkar till prestandaämnen för specifika .NET Framework apptyper.
Typ av app | Se |
---|---|
.NET Framework appar för alla plattformar | Skräpinsamling och prestanda Prestanda Tips |
Windows 8.x Store-appar skrivna i C++, C#och Visual Basic | Metodtips för prestanda för Windows Store-appar med C++, C# och Visual Basic |
Windows Presentation Foundation (WPF) | WPF Performance Suite |
ASP.NET | Översikt över ASP.NET prestanda |
Relaterade ämnen
Rubrik | Beskrivning |
---|---|
Cachelagring i .NET Framework-program | Beskriver tekniker för cachelagring av data för att förbättra prestanda i din app. |
Lat initiering | Beskriver hur du initierar objekt efter behov för att förbättra prestanda, särskilt vid appstart. |
Tillförlitlighet | Innehåller information om hur du förhindrar asynkrona undantag i en servermiljö. |
Skriva stora, dynamiska .NET Framework-appar | Innehåller prestandatips som samlats in från att skriva om C# och Visual Basic kompilatorer i hanterad kod och innehåller flera verkliga exempel från C#-kompilatorn. |