Prestazioni delle librerie multithread
CRT a thread singolo non è più disponibile. Questo articolo illustra come ottenere le prestazioni massime dalle librerie multithreading.
Massimizzazione delle prestazioni
Le prestazioni delle librerie con multithreading sono state migliorate e sono vicine alle prestazioni delle librerie a thread singolo, ora eliminate. Per i casi in cui sono richieste prestazioni superiori, esistono alcune nuove funzionalità.
Il blocco indipendente del flusso consente di bloccare un flusso e quindi di usare
_nolock
funzioni che accedono direttamente al flusso. Questa funzionalità consente di accumulare l'utilizzo dei blocchi all'esterno dei cicli critici.Le impostazioni locali per thread riducono il costo dell'accesso alle impostazioni locali per gli scenari multithreading (vedere
_configthreadlocale
).Le funzioni dipendenti dalle impostazioni locali (con nomi che terminano in _l) accettano le impostazioni locali come parametro, rimuovendo costi sostanziali (ad esempio,
printf
,_printf_l
,wprintf
, )._wprintf_l
Le ottimizzazioni per le tabelle codici comuni riducono il costo di molte operazioni brevi.
La definizione
_CRT_DISABLE_PERFCRIT_LOCKS
impone a tutte le operazioni di I/O di presupporre un modello di I/O a thread singolo e usare le_nolock
forme delle funzioni. Questa macro consente alle applicazioni a thread singolo basate su I/O di ottenere prestazioni migliori.L'esposizione dell'handle heap CRT consente di abilitare Windows Low Fragmentation Heap (LFH) per l'heap CRT, che consente di migliorare notevolmente le prestazioni negli scenari altamente ridimensionati.