Prestandatips för .NET

Termen prestanda refererar vanligtvis till körningshastigheten för ett program. Du kan ibland öka körningshastigheten genom att följa vissa grundläggande regler i källkoden. I vissa program är det viktigt att undersöka koden noggrant och använda profilerare för att se till att den körs så snabbt som möjligt. I andra program behöver du inte utföra en sådan optimering eftersom koden körs acceptabelt snabbt när den skrivs. Den här artikeln innehåller några vanliga områden där prestanda kan drabbas och tips för att förbättra den samt länkar till ytterligare prestandaämnen. Mer information om att planera och mäta prestanda finns i Prestanda

Boxning och avboxning

Det är bäst att undvika att använda värdetyper i situationer där de måste boxas ett stort antal gånger, till exempel i icke-generiska samlingsklasser som System.Collections.ArrayList. Du kan undvika boxning av värdetyper med hjälp av allmänna samlingar som System.Collections.Generic.List<T>. Boxning och unboxing är beräkningsmässigt dyra processer. När en värdetyp boxas måste ett helt nytt objekt skapas. Det kan ta upp till 20 gånger längre tid än en enkel referenstilldelning. När du tar bort inkorgen kan gjutningsprocessen ta fyra gånger så lång tid som en tilldelning. Mer information finns i Boxning och Avboxning.

Strängar

När du sammanfogar ett stort antal strängvariabler, till exempel i en snäv loop, använder du System.Text.StringBuilder i stället för C# + operatorn eller Visual Basic Concatenation Operators. Mer information finns i Sammanfoga flera strängar och sammanlänkningsoperatorer i Visual Basic.

Slutförare

Tomma finalizers ska inte användas. När en klass innehåller en finalizer skapas en post i kön Slutför. När slutföraren anropas anropas skräpinsamlaren för att bearbeta kön. Om finalizern är tom resulterar detta helt enkelt i att prestandan går förlorad. Mer information finns i Finalizers and Object Lifetime: How Objects Are Created and Destroyed (Slutförare och Objektlivslängd: Hur objekt skapas och förstörs).

Andra resurser

Se även