.NET-Leistungstipps
Die Begriff Leistung bezieht sich im Allgemeinen auf die Ausführungsgeschwindigkeit eines Programms.In manchen Fällen können Sie die Ausführungsgeschwindigkeit erhöhen, indem Sie im Quellcode bestimmte Grundregeln befolgen.In einigen Programmen müssen Sie den Code genau untersuchen und mithilfe von Profilern sicherstellen, dass dieser so schnell wie möglich ausgeführt wird.In anderen Programmen müssen Sie keine solche Optimierung ausführen, da Code in der aktuellen Form mit akzeptabler Geschwindigkeit ausgeführt wird.Dieser Artikel beschreibt einige häufige Bereiche, in denen die Leistung abnehmen kann, und enthält Tipps zur Verbesserung sowie Links zu weiteren Leistungsthemen.Weitere Informationen zum Planen und Messen der Leistung finden Sie unter .NET Framework Performance
Boxing und Unboxing
Am besten verwenden Sie keine Werttypen in Situationen, in denen sie öfter geschachtelt werden müssen, z. B. in nicht generischen Auflistungsklassen wie System.Collections.ArrayList.Sie können die Schachtelung von Werttypen vermeiden, indem Sie generische Auflistungen, z. B. System.Collections.Generic.List<T>, verwenden.Boxing und Unboxing sind rechenintensive Prozesse.Wenn ein Werttyp geschachtelt wird, muss ein völlig neues Objekt erstellt werden.Dies kann bis zu 20-mal länger dauern als eine einfache Zuweisung eines Verweises.Eine Umwandlung durch Unboxing kann vier Mal mehr Zeit beanspruchen als eine Zuweisung.Weitere Informationen finden Sie unter Boxing und Unboxing.
Zeichenfolgen
Wenn Sie eine große Anzahl von Zeichenfolgenvariablen, z. B. in einer dichten Schleife, verketten, verwenden Sie System.Text.StringBuilder anstelle des +-Operatoren in C# oder der Verkettungsoperatoren in Visual Basic.Weitere Informationen finden Sie unter Gewusst wie: Verketten von mehreren Zeichenfolgen (C#-Programmierhandbuch) und Concatenation Operators in Visual Basic.
Destruktoren
Leere Destruktoren sollten nicht verwendet werden.Wenn eine Klasse einen Destruktor enthält, wird ein Eintrag in der Finalize-Warteschlange erstellt.Wenn der Destruktor aufgerufen wird, wird der Garbage Collector aufgerufen, um die Warteschlange zu verarbeiten.Wenn der Destruktor leer ist, führt dies einfach zu einem Leistungsverlust.Weitere Informationen finden Sie unter Destruktoren (C#-Programmierhandbuch) und Object Lifetime: How Objects Are Created and Destroyed (Visual Basic).
Weitere Ressourcen
Siehe auch
.NET Framework Performance
Programmierungskonzepte
Visual Basic Programming Guide
C#-Programmierhandbuch