Einführung in das Hochleistungspaket
Das CommunityToolkit.HighPerformance
enthält Hilfsprogramme und Erweiterungen, um in Hochleistungsszenarien zu arbeiten. Dieses Paket kann über NuGet installiert werden und hat die folgenden Mehrfachziele:
- .NET-Standard 2.0
- .NET Standard 2.1
- .NET 6
- .NET 7
Dies bedeutet, dass Sie es von UWP- oder Legacy-.NET Framework-Anwendungen über in Unity geschriebenen Spielen, plattformübergreifenden mobilen Anwendungen mit Xamarin bis hin zu .NET Standard-Bibliotheken und modernen .NET 6- und .NET 7-Anwendungen verwenden können. Die API-Oberfläche ist in allen Fällen fast identisch, und es wurde viel Arbeit in die Rückportierung möglichst vieler Features auf ältere Ziele wie .NET Standard 2.0 gesteckt. Mit Ausnahme einiger geringfügiger Unterschiede können Sie davon ausgehen, dass die gleichen APIs für alle Zielframeworks verfügbar sein werden. Der Grund, warum Mehrfach-Targeting verwendet wurde, besteht darin, dass das Paket wann immer möglich alle aktuellen APIs auf modernen Laufzeiten (wie .NET 7) nutzen kann, und gleichzeitig die meisten seiner Funktionen auf allen Zielplattformen anbieten kann.
Erste Schritte
So installieren Sie das Paket aus Visual Studio:
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt, und wählen Sie NuGet-Pakete verwalten aus. Suchen Sie nach CommunityToolkit.HighPerformance, und installieren Sie es.
Fügen Sie eine „Using“- oder „Imports“-Anweisung hinzu, um die neuen APIs zu verwenden:
using CommunityToolkit.HighPerformance;
Imports CommunityToolkit.HighPerformance
Codebeispiele sind auf den anderen Dokumentationsseiten für das MVVM-Toolkit und in den Komponententests für das Projekt verfügbar.
Wann sollte ich dieses Paket verwenden?
Wie der Name schon sagt, enthält das Hochleistungspaket eine Reihe von APIs, die sich stark auf die Optimierung konzentrieren. Alle neuen APIs wurden sorgfältig gestaltet, um bei der Verwendung die bestmögliche Leistung zu erzielen, entweder durch reduzierte Speicherbelegung, Mikro-Optimierungen auf Ebene der Assembly oder durch Strukturieren der APIs in einer Weise, die das Schreiben von leistungsorientiertem Code im Allgemeinen erleichtert.
Dieses Paket macht regen Gebrauch von APIs wie z.B.:
System.Span<T>
System.Memory<T>
System.Buffers.ArrayPool<T>
System.Runtime.CompilerServices.Unsafe
System.Runtime.InteropServices.MemoryMarshal
System.Threading.Tasks.Parallel
Wenn Sie bereits mit diesen APIs vertraut sind, oder selbst wenn Sie gerade erst mit dem Schreiben von Hochleistungscode in C# beginnen und eine Reihe gut getesteter Hilfsprogramme in Ihren eigenen Projekten verwenden möchten, schauen Sie sich an, was in diesem Paket enthalten ist, um zu sehen, wie Sie es in Ihren eigenen Projekten verwenden können!
Wo soll ich anfangen?
Hier sind einige APIs, die Sie sich zuerst ansehen könnten, wenn Sie bereits einen der oben erwähnten Typen verwenden:
Span2D<T>
undMemory2D<T>
, für eineSpan<T>
- undMemory<T>
-ähnliche Abstraktion über 2D-ArbeitsspeicherMemoryOwner<T>
undSpanOwner<T>
, wenn Sie bisherSystem.Buffers.ArrayPool<T>
verwendeten.StringPool
, für einenArrayPool<T>
-ähnlichen Typ zum Zwischenspeichern vonstring
-InstanzenParallelHelper
, wenn Sie bisherSystem.Threading.Tasks.Parallel
verwendeten.
Zusätzliche Ressourcen
Weitere Beispiele finden Sie in den Komponententests.
.NET Community Toolkit