Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Il 📦 pacchetto CommunityToolkit.HighPerformance contiene helper ed estensioni per funzionare in scenari a prestazioni elevate. Questo pacchetto può essere installato tramite NuGet e include i seguenti multitarget:
- .NET Standard 2.0
- .NET 7
Ciò significa che è possibile usarlo per qualsiasi elemento, dalle applicazioni UWP o legacy .NET Framework, dai giochi scritti in Unity, dalle applicazioni per dispositivi mobili multipiattaforma con Xamarin, alle librerie .NET Standard e alle applicazioni .NET 7 e successive moderne. L'interfaccia API è quasi identica in tutti i casi e molti sforzi sono stati dedicati nel backporting del maggior numero possibile di funzionalità per versioni precedenti come .NET Standard 2.0. Ad eccezione di alcune piccole differenze, è possibile prevedere che le stesse API siano disponibili in tutti i framework di destinazione. Il motivo per cui è stato usato multitargeting è consentire al pacchetto di sfruttare tutte le API più recenti nei runtime moderni quando possibile, offrendo comunque la maggior parte delle sue funzionalità a tutte le piattaforme di destinazione.
Inizia subito
Per installare il pacchetto da Visual Studio:
In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto e scegliere Gestisci pacchetti NuGet. Cercare CommunityToolkit.HighPerformance e installarlo.
Aggiungere una direttiva using o Imports per usare le nuove API:
using CommunityToolkit.HighPerformance;Imports CommunityToolkit.HighPerformanceGli esempi di codice sono disponibili nelle altre pagine della documentazione per MVVM Toolkit e negli unit test per il progetto.
Quando è consigliabile usare questo pacchetto?
Come suggerisce il nome, il pacchetto a prestazioni elevate contiene un set di API incentrate sull'ottimizzazione. Tutte le nuove API sono state create attentamente per ottenere le migliori prestazioni possibili quando vengono usati, tramite un'allocazione di memoria ridotta, micro ottimizzazioni a livello di assembly o strutturando le API in modo da facilitare la scrittura di codice orientato alle prestazioni in generale.
Questo pacchetto usa pesantemente le API, ad esempio:
System.Span<T>System.Memory<T>System.Buffers.ArrayPool<T>System.Runtime.CompilerServices.UnsafeSystem.Runtime.InteropServices.MemoryMarshalSystem.Threading.Tasks.Parallel
Se si ha già familiarità con queste API o anche se si è appena iniziato a scrivere codice ad alte prestazioni in C# e si vuole usare un set di helper ben testati da usare nei propri progetti, vedere cosa è incluso in questo pacchetto per vedere come usarlo nei propri progetti.
Da dove iniziare?
Ecco alcune API che è possibile esaminare prima, se si usa già uno di questi tipi menzionati in precedenza:
-
Span2D<T>eMemory2D<T>, per un'astrazione simile aMemory<T>della memoria 2D -
MemoryOwner<T>eSpanOwner<T>, se si usaSystem.Buffers.ArrayPool<T>. -
StringPool, per un tipo simile aArrayPool<T>per memorizzare nella cache le istanze distring -
ParallelHelper, se avessi utilizzatoSystem.Threading.Tasks.Parallel.
Risorse aggiuntive
Altri esempi sono disponibili negli unit test.
.NET Community Toolkit