Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O 📦 pacote CommunityToolkit.HighPerformance contém auxiliares e extensões para trabalhar em cenários de alto desempenho. Esse pacote pode ser instalado por meio do NuGet e tem os seguintes multitargets:
- .NET Standard 2.0
- .NET 7
Isso significa que você pode usá-lo para qualquer coisa, desde aplicativos UWP ou .NET Framework herdados, jogos escritos no Unity, aplicativos móveis multiplataforma usando o Xamarin, até bibliotecas do .NET Standard e aplicativos modernos do .NET 7 e posteriores. A superfície da API é quase idêntica em todos os casos, e foi realizado muito trabalho para retrocompatibilizar tantas funcionalidades quanto possível para versões mais antigas, como o .NET Standard 2.0. Exceto por algumas pequenas diferenças, você pode esperar que as mesmas APIs estejam disponíveis em todas as estruturas de destino. O motivo pelo qual o multi-direcionamento foi usado é permitir que o pacote aproveite todas as APIs mais recentes em runtimes modernos sempre que possível, ao mesmo tempo que oferece a maioria de suas funcionalidades para todas as plataformas de destino.
Introdução
Para instalar o pacote de dentro do Visual Studio:
No Gerenciador de Soluções, clique com o botão direito do mouse no projeto e selecione Gerenciar Pacotes NuGet. Pesquise CommunityToolkit.HighPerformance e instale-o.
Adicione uma diretiva Using ou Imports para usar as novas APIs:
using CommunityToolkit.HighPerformance;Imports CommunityToolkit.HighPerformanceExemplos de código estão disponíveis nas outras páginas de documentos para o Kit de Ferramentas MVVM e nos testes de unidade do projeto.
Quando devo usar esse pacote?
Como o nome sugere, o pacote de alto desempenho contém um conjunto de APIs que estão fortemente focadas na otimização. Todas as novas APIs foram cuidadosamente criadas para obter o melhor desempenho possível ao usá-las, seja por meio de alocação de memória reduzida, micro otimizações no nível do assembly ou estruturando as APIs de forma a facilitar a gravação de código orientado ao desempenho em geral.
Esse pacote faz uso intenso de APIs como:
System.Span<T>System.Memory<T>System.Buffers.ArrayPool<T>System.Runtime.CompilerServices.UnsafeSystem.Runtime.InteropServices.MemoryMarshalSystem.Threading.Tasks.Parallel
Se você já estiver familiarizado com essas APIs ou mesmo se estiver apenas começando a escrever código de alto desempenho no C# e quiser que um conjunto de auxiliares bem testados use em seus próprios projetos, confira o que está incluído neste pacote para ver como você pode usá-lo em seus próprios projetos!
Por onde começar?
Aqui estão algumas APIs que você poderia examinar primeiro, se já estivesse usando um desses tipos mencionados anteriormente:
-
Span2D<T>eMemory2D<T>, para uma abstração semelhante aMemory<T>da memória 2D -
MemoryOwner<T>eSpanOwner<T>, se você estava usandoSystem.Buffers.ArrayPool<T>. - ```plaintext
StringPool, para um tipo semelhante aArrayPool<T>para armazenar em cache instâncias destring``` -
ParallelHelper, se você estivesse usandoSystem.Threading.Tasks.Parallel.
Recursos adicionais
Você pode encontrar mais exemplos nos testes de unidade.
.NET Community Toolkit