Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O 📦 pacote CommunityToolkit.HighPerformance contém ajudantes e extensões para trabalhar em cenários de alto desempenho. Este pacote pode ser instalado através do NuGet, e tem os seguintes multitargets:
- .NET Padrão 2.0
- .NET 7
Isto significa que pode usá-lo para tudo, desde aplicações UWP ou legadas do .NET Framework, jogos escritos em Unity, aplicações móveis multiplataforma usando Xamarin, até bibliotecas .NET Standard e aplicações modernas .NET 7 e posteriores. A superfície da API é quase idêntica em todos os casos, e foi feito muito trabalho para retroportar o máximo de funcionalidades possível para alvos mais antigos, como o .NET Standard 2.0. Exceto por algumas pequenas diferenças, pode esperar que as mesmas APIs estejam disponíveis em todos os frameworks de destino. A razão pela qual o multidirecionamento tem sido usado é para permitir que o pacote aproveite todas as APIs mais recentes em runtimes modernos sempre que possível, mantendo a maioria das suas funcionalidades a todas as plataformas alvo.
Introdução
Para instalar o pacote a partir do Visual Studio:
No Explorador de Soluções, clique com o botão direito no projeto e selecione Gerir Pacotes NuGet. Procura CommunityToolkit.HighPerformance e instala.
Adicione uma diretiva using or Imports para usar as novas APIs:
using CommunityToolkit.HighPerformance;Imports CommunityToolkit.HighPerformanceExemplos de código estão disponíveis nas outras páginas de documentação do MVVM Toolkit e nos testes unitários do projeto.
Quando devo usar este pacote?
Como o nome indica, o pacote de Alto Desempenho contém um conjunto de APIs fortemente focadas na otimização. Todas as novas APIs foram cuidadosamente desenvolvidas para alcançar o melhor desempenho possível ao serem utilizadas, seja através da redução da alocação de memória, micro-otimizações ao nível de assembly, ou estruturando as APIs de forma a facilitar a escrita de código orientado para desempenho em geral.
Este pacote faz uso intensivo de APIs como:
System.Span<T>System.Memory<T>System.Buffers.ArrayPool<T>System.Runtime.CompilerServices.UnsafeSystem.Runtime.InteropServices.MemoryMarshalSystem.Threading.Tasks.Parallel
Se já está familiarizado com estas APIs ou mesmo se está a começar a escrever código de alto desempenho em C# e quer um conjunto de ajudantes bem testados para usar nos seus próprios projetos, veja o que está incluído neste pacote para ver como pode usá-lo nos seus próprios projetos!
Onde começa?
Aqui estão algumas APIs que podes considerar primeiro, caso já estivesses a usar um dos tipos mencionados anteriormente:
-
Span2D<T>eMemory2D<T>, para uma abstração semelhante aSpan<T>eMemory<T>sobre a memória 2D -
MemoryOwner<T>eSpanOwner<T>, se estivesse a usarSystem.Buffers.ArrayPool<T>. -
StringPool, para um tipo semelhante aoArrayPool<T>para instanciar cachesstring -
ParallelHelper, se estivesses a usarSystem.Threading.Tasks.Parallel.
Recursos adicionais
Podes encontrar mais exemplos nos testes unitários.
.NET Community Toolkit