Compartilhar via


Introdução ao pacote de alto desempenho

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:

  1. 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.

    Pacotes NuGet

  2. Adicione uma diretiva Using ou Imports para usar as novas APIs:

    using CommunityToolkit.HighPerformance;
    
    Imports CommunityToolkit.HighPerformance
    
  3. Exemplos 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:

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> e Memory2D<T>, para uma abstração semelhante a Memory<T> da memória 2D
  • MemoryOwner<T> e SpanOwner<T>, se você estava usando System.Buffers.ArrayPool<T>.
  • ```plaintext StringPool, para um tipo semelhante a ArrayPool<T> para armazenar em cache instâncias de string ```
  • ParallelHelper, se você estivesse usando System.Threading.Tasks.Parallel.

Recursos adicionais

Você pode encontrar mais exemplos nos testes de unidade.