Výkon vícevláknových knihoven
CrT s jedním vláknem už není k dispozici. Tento článek popisuje, jak získat maximální výkon z vícevláknových knihoven.
Maximalizace výkonu
Vylepšili jsme výkon vícevláknových knihoven a blíží se výkonu nově vyloučených knihoven s jedním vláknem. V takových situacích, kdy se vyžaduje ještě vyšší výkon, existuje několik nových funkcí.
Nezávislé zamykání datových proudů umožňuje uzamknout datový proud a pak používat
_nolock
funkce , které k datovému proudu přistupují přímo. Tato funkce umožňuje, aby se využití zámků střídá mimo kritické smyčky.Národní prostředí pro jednotlivá vlákna snižuje náklady na přístup k národnímu prostředí pro scénáře s více vlákny (viz
_configthreadlocale
).Funkce závislé na národním prostředí (s názvy končícími na _l) přebírají národní prostředí jako parametr, čímž se odeberou dodatečné náklady (například
printf
,_printf_l
,wprintf
,_wprintf_l
).Optimalizace pro běžné kódové stránky snižují náklady na mnoho krátkých operací.
Definování
_CRT_DISABLE_PERFCRIT_LOCKS
vynutí všechny vstupně-výstupní operace předpokládat model V/V s jedním vláknem a používat_nolock
formy funkcí. Toto makro umožňuje vysoce V/V aplikacím s jedním vláknem dosáhnout lepšího výkonu.Vystavení úchytu haldy CRT umožňuje povolit haldu systému Windows s nízkou fragmentací (LFH) pro haldu CRT, která může výrazně zlepšit výkon ve vysoce škálovaných scénářích.
Viz také
Soubory C runtime (CRT) a standardní knihovny C++ (STL) .lib