Introducción al paquete de alto rendimiento
CommunityToolkit.HighPerformance
contiene asistentes y extensiones para trabajar en escenarios de alto rendimiento. Este paquete se puede instalar a través de NuGet, y tiene los siguientes objetivos múltiples:
- .NET Standard 2.0
- .NET Standard 2.1
- .NET 6
- .NET 7
Esto significa que puede utilizarlo desde aplicaciones UWP o heredadas de .NET Framework, juegos escritos en Unity, aplicaciones móviles multiplataforma utilizando Xamarin, hasta bibliotecas .NET Standard y aplicaciones modernas .NET 6 y .NET 7. La superficie de API es casi idéntica en todos los casos y se ha puesto mucho trabajo en la devolución de tantas características como sea posible a destinos anteriores como .NET Standard 2.0. Excepto por algunas diferencias menores, puede esperar que las mismas API estén disponibles en todas las plataformas de destino. La razón por la que se ha usado varios destinos es permitir que el paquete aproveche todas las API más recientes en entornos de ejecución modernos (como .NET 7) siempre que sea posible, a la vez que ofrece la mayoría de sus funcionalidades a todas las plataformas de destino.
Introducción
Para instalar el paquete desde Visual Studio:
En el Explorador de soluciones, haga clic con el botón derecho en el proyecto y seleccione Administrar paquetes NuGet. Busque CommunityToolkit.HighPerformance e instálelo.
Agregue una directiva using o Imports para utilizar las nuevas API:
using CommunityToolkit.HighPerformance;
Imports CommunityToolkit.HighPerformance
Los ejemplos de código están disponibles en las otras páginas de documentos del kit de herramientas de MVVM y en las pruebas unitarias del proyecto.
¿Cuándo debería usar este paquete?
Como sugiere el nombre, el paquete de alto rendimiento contiene un conjunto de API que se centran en gran medida en la optimización. Todas las nuevas API se han elaborado cuidadosamente para lograr el mejor rendimiento posible al utilizarlas, ya sea mediante una asignación de memoria reducida, microoptimizaciones a nivel de ensamblador o estructurando las API de forma que se facilite la escritura de código orientado al rendimiento en general.
Este paquete hace un uso intensivo de las API, como:
System.Span<T>
System.Memory<T>
System.Buffers.ArrayPool<T>
System.Runtime.CompilerServices.Unsafe
System.Runtime.InteropServices.MemoryMarshal
System.Threading.Tasks.Parallel
Si ya está familiarizado con estas API o incluso si acaba de empezar a escribir código de alto rendimiento en C# y quiere un conjunto de asistentes bien probados para usarlos en sus propios proyectos, eche un vistazo a lo que se incluye en este paquete para ver cómo puede usarlo en sus propios proyectos.
¿Dónde empezar?
Estas son algunas API que podría examinar primero, si ya estaba usando uno de esos tipos mencionados anteriormente:
Span2D<T>
yMemory2D<T>
, para una abstracción de tipoSpan<T>
yMemory<T>
sobre la memoria 2DMemoryOwner<T>
ySpanOwner<T>
, si estaba usandoSystem.Buffers.ArrayPool<T>
.StringPool
, para un tipo similar aArrayPool<T>
para almacenar en cachéstring
instanciasParallelHelper
, si usabaSystem.Threading.Tasks.Parallel
.
Recursos adicionales
Puede encontrar más ejemplos en las pruebas unitarias.
.NET Community Toolkit