Présentation du package Haute performance
Le CommunityToolkit.HighPerformance
contient des assistants et des extensions pour à utiliser dans les scénarios haute performance. Ce package peut être installé via NuGet et il dispose des cibles multiples suivantes :
- .NET Standard 2.0
- .NET Standard 2.1
- .NET 6
- .NET 7
Cela signifie que vous pouvez l’utiliser pour tout, depuis les applications UWP ou .NET Framework héritées, les jeux écrits dans Unity, les applications mobiles multiplateformes utilisant Xamarin, aux bibliothèques .NET Standard et aux applications .NET 6 et .NET 7 modernes. La surface de l’API est presque identique dans tous les cas, et un important travail a été réalisé pour rétroporter autant de fonctionnalités que possible pour les cibles plus anciennes comme .NET Standard 2.0. À l’exception de certaines différences mineures, vous pouvez vous attendre à ce que les mêmes API soient disponibles sur toutes les infrastructures cibles. La raison pour laquelle le multi-ciblage a été utilisé est de permettre au package de tirer profit de toutes les API les plus récentes sur les runtimes modernes (comme .NET 7) dans la mesure du possible, tout en offrant la plupart de ses fonctionnalités à toutes les plateformes cibles.
Mise en route
Pour installer le package depuis Visual Studio :
Dans l’Explorateur de solutions, faites un clic droit sur le projet et sélectionnez Gérer les packages NuGet. Recherchez CommunityToolkit.HighPerformance et installez-le.
Ajoutez une directive Using ou Imports pour utiliser les nouvelles API :
using CommunityToolkit.HighPerformance;
Imports CommunityToolkit.HighPerformance
Des exemples de code sont disponibles dans les autres pages de la documentation du kit d’outils MVVM et dans les tests unitaires du projet.
Quand dois-je utiliser ce package ?
Comme son nom l’indique, le package Haute performance contient un ensemble d’API qui sont fortement orientées sur l’optimisation. Toutes les nouvelles API ont été soigneusement conçues pour obtenir le meilleur niveau de performance possible lors de leur utilisation, soit par une allocation de mémoire réduite, des micro-optimisations au niveau de l’assembly, soit en structurant les API d’une manière qui facilite l’écriture de code orienté performance en général.
Ce package utilise intensément les API telles que :
System.Span<T>
System.Memory<T>
System.Buffers.ArrayPool<T>
System.Runtime.CompilerServices.Unsafe
System.Runtime.InteropServices.MemoryMarshal
System.Threading.Tasks.Parallel
Si vous êtes déjà familier de ces API, ou même si vous commencez simplement à écrire du code hautes performances en C# et que vous souhaitez un ensemble d’assistances bien testées à utiliser dans vos propres projets, consultez ce que contient ce package pour voir comment vous pouvez l’utiliser dans vos propres projets !
Où commencer ?
Voici quelques API que vous pouvez examiner en premier si vous utilisiez déjà l’un des types mentionnés ci-dessus :
Span2D<T>
etMemory2D<T>
, pour une abstraction sur mémoire 2D du styleSpan<T>
etMemory<T>
.MemoryOwner<T>
etSpanOwner<T>
si vous utilisiezSystem.Buffers.ArrayPool<T>
.StringPool
, pour un type semblable àArrayPool<T>
pour mettre en cache les instancesstring
.ParallelHelper
, si vous utilisiezSystem.Threading.Tasks.Parallel
.
Ressources supplémentaires
Vous pouvez trouver d’autres exemples dans les tests unitaires.
.NET Community Toolkit