Wprowadzenie do pakietu o wysokiej wydajności
Zawiera CommunityToolkit.HighPerformance
pomocników i rozszerzenia do pracy w scenariuszach o wysokiej wydajności. Ten pakiet można zainstalować za pomocą narzędzia NuGet i ma następujące obiekty wielowersyjne:
- .NET Standard 2.0
- .NET Standard 2.1
- .NET 6
- .NET 7
Oznacza to, że można go używać z dowolnych elementów z aplikacji platformy UWP lub starszych aplikacji .NET Framework, gier napisanych w środowisku Unity, wieloplatformowych aplikacjach mobilnych przy użyciu platformy Xamarin, bibliotek .NET Standard i nowoczesnych aplikacji platformy .NET 6 i .NET 7. Powierzchnia interfejsu API jest prawie identyczna we wszystkich przypadkach, a wiele prac zostało umieszczonych w backportingu jak najwięcej funkcji do starszych obiektów docelowych, takich jak .NET Standard 2.0. Z wyjątkiem niektórych drobnych różnic można oczekiwać, że te same interfejsy API będą dostępne we wszystkich platformach docelowych. Powodem użycia wielowersyjności jest umożliwienie pakietowi korzystania ze wszystkich najnowszych interfejsów API w nowoczesnych środowiskach uruchomieniowych (takich jak .NET 7), gdy jest to możliwe, jednocześnie oferując większość jej funkcji wszystkim platformom docelowym.
Wprowadzenie
Aby zainstalować pakiet z poziomu programu Visual Studio:
W Eksplorator rozwiązań kliknij prawym przyciskiem myszy projekt i wybierz polecenie Zarządzaj pakietami NuGet. Wyszukaj ciąg CommunityToolkit.HighPerformance i zainstaluj go.
Dodaj dyrektywę using lub Import, aby użyć nowych interfejsów API:
using CommunityToolkit.HighPerformance;
Imports CommunityToolkit.HighPerformance
Przykłady kodu są dostępne na innych stronach dokumentacji dla zestawu narzędzi MVVM Toolkit oraz w testach jednostkowych dla projektu.
Kiedy należy używać tego pakietu?
Jak sugeruje nazwa, pakiet o wysokiej wydajności zawiera zestaw interfejsów API, które są mocno skoncentrowane na optymalizacji. Wszystkie nowe interfejsy API zostały starannie spreparowane, aby osiągnąć najlepszą możliwą wydajność podczas ich używania, poprzez zmniejszenie alokacji pamięci, mikro optymalizacje na poziomie zestawu lub strukturyzowanie interfejsów API w sposób, który ułatwia pisanie kodu zorientowanego na wydajność w ogóle.
Ten pakiet intensywnie korzysta z interfejsów API, takich jak:
System.Span<T>
System.Memory<T>
System.Buffers.ArrayPool<T>
System.Runtime.CompilerServices.Unsafe
System.Runtime.InteropServices.MemoryMarshal
System.Threading.Tasks.Parallel
Jeśli znasz już te interfejsy API, a nawet jeśli dopiero zaczynasz pisać kod o wysokiej wydajności w języku C# i chcesz użyć zestawu dobrze przetestowanych pomocników do użycia we własnych projektach, zapoznaj się z elementami zawartymi w tym pakiecie, aby zobaczyć, jak można go używać we własnych projektach.
Gdzie rozpocząć?
Poniżej przedstawiono kilka interfejsów API, które można najpierw przyjrzeć się, jeśli używasz już jednego z tych typów wymienionych powyżej:
Span2D<T>
i , dla abstrakcji podobnejSpan<T>
do iMemory2D<T>
Memory<T>
w przypadku pamięci 2DMemoryOwner<T>
iSpanOwner<T>
, jeśli używasz poleceniaSystem.Buffers.ArrayPool<T>
.StringPool
, dla wystąpienia pamięci podręcznejArrayPool<T>
string
typu podobnego do typuParallelHelper
, jeśli używasz poleceniaSystem.Threading.Tasks.Parallel
.
Dodatkowe zasoby
.NET Community Toolkit