Partilhar via


Desempenho de bibliotecas multithread

A CRT single-thread não está mais disponível. Este artigo discute como obter o máximo desempenho das bibliotecas multithreaded.

Maximizar o desempenho

O desempenho das bibliotecas multithread foi aprimorado e está próximo do desempenho das bibliotecas single-thread que foram eliminadas. Existem vários recursos novos para essas situações, mesmo quando é necessário um desempenho superior.

  • O bloqueio de fluxo independente permite que você bloqueie um fluxo e, em seguida, use _nolock funções que acessam o fluxo diretamente. Esse recurso permite que o uso da fechadura seja içado para fora dos loops críticos.

  • A localidade por thread reduz o custo do acesso à localidade para cenários multithread (consulte _configthreadlocale).

  • Funções dependentes de localidade (com nomes terminados em _l) usam a localidade como um parâmetro, removendo custos substanciais (por exemplo, , , wprintf_printf_l, _wprintf_l).printf

  • Otimizações para páginas de código comuns reduzem o custo de muitas operações curtas.

  • A definição _CRT_DISABLE_PERFCRIT_LOCKS força todas as operações de E/S a assumir um modelo de E/S de thread único e usar as _nolock formas das funções. Essa macro permite que aplicativos de thread único altamente baseados em E/S obtenham melhor desempenho.

  • Com a exposição do identificador de heap CRT, é possível habilitar o Heap de Baixa Fragmentação do (LFH) do Windows para o heap de CRT, o que pode melhorar substancialmente o desempenho em cenários altamente dimensionados.

Confira também

Arquivos .lib de runtime do C (CRT) e Biblioteca Padrão (STL) do C++