Freigeben über


.NET-Leistungstipps

Der Begriff "Leistung " bezieht sich im Allgemeinen auf die Ausführungsgeschwindigkeit eines Programms. Sie können manchmal die Ausführungsgeschwindigkeit erhöhen, indem Sie bestimmte Grundlegende Regeln in Ihrem Quellcode folgen. In einigen Programmen ist es wichtig, Code genau zu untersuchen und Profiler zu verwenden, um sicherzustellen, dass er so schnell wie möglich ausgeführt wird. In anderen Programmen müssen Sie diese Optimierung nicht ausführen, da der Code bereits in der geschriebenen Form akzeptabel schnell läuft. In diesem Artikel werden einige allgemeine Bereiche aufgeführt, in denen die Leistung beeinträchtigt werden kann, und Tipps zur Verbesserung sowie Links zu zusätzlichen Leistungsthemen. Weitere Informationen zur Planung und Messung der Leistung finden Sie unter 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 das Boxen von Werttypen vermeiden, indem Sie generische Auflistungen wie z. B. System.Collections.Generic.List<T> verwenden. Boxing und Unboxing sind rechenintensive Prozesse. Wenn ein Werttyp eingeboxt wird, muss ein vollständig neues Objekt erzeugt werden. Dies kann bis zu 20 Mal länger dauern als eine einfache Referenzzuweisung. Eine Umwandlung durch Unboxing kann vier Mal mehr Zeit beanspruchen als eine Zuweisung. Weitere Informationen finden Sie unter Boxing und Unboxing.

Streichinstrumente

Wenn Sie eine große Anzahl von Zeichenfolgenvariablen verketten, z. B. in einer engen Schleife, verwenden Sie System.Text.StringBuilder anstelle des C# +-Operators oder der Visual Basic-Verkettungsoperatoren. Weitere Informationen finden Sie unter Verketten mehrerer Zeichenfolgen und Verkettungsoperatoren in Visual Basic.

Finalizer

Leere Finalizer sollten nicht verwendet werden. Wenn eine Klasse einen Finalizer enthält, wird ein Eintrag in der Finalize-Warteschlange erstellt. Wenn der Finalizer aufgerufen wird, wird der Garbage Collector aufgerufen, um die Warteschlange zu verarbeiten. Wenn der Finalizer leer ist, führt dies einfach zu einem Leistungsverlust. Weitere Informationen finden Sie unter Finalizer undObjektlebensdauer: Erstellen und Zerstören von Objekten.

Weitere Ressourcen

Siehe auch