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++