Sdílet prostřednictvím


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