Производительность многопотоковых библиотек
Однопоточные CRT более не доступны. В этой статье описывается, как получить максимальную производительность из многопоточных библиотек.
Максимальное увеличение производительности
Производительность многопоточных библиотек улучшилась и близка к производительности теперь исключенных однопоточных библиотек. Для ситуаций, когда нужна еще более высокая производительность, предусмотрено несколько новых возможностей.
Независимая блокировка потоков позволяет заблокировать поток, а затем использовать
_nolock
функции , которые обращаются к потоку напрямую. Эта функция позволяет закрепить использование блокировки вне критически важных циклов.Языковой стандарт для каждого потока снижает затраты на доступ к языковому стандарту для многопоточных сценариев (см. раздел
_configthreadlocale
).Функции, зависящие от языкового стандарта (с именами, заканчивающимися _l), принимают языковой стандарт в качестве параметра, удаляя существенные затраты (например, ,
printf
,_printf_l
wprintf
, )._wprintf_l
Оптимизации для общих кодовых страниц снижают стоимость множества коротких операций.
Определение
_CRT_DISABLE_PERFCRIT_LOCKS
заставляет все операции ввода-вывода принимать модель ввода-вывода с одним потоком и использовать_nolock
формы функций. Этот макрос позволяет приложениям с одним потоком на основе высокопоточных операций ввода-вывода повысить производительность.Предоставление дескриптора кучи CRT позволяет включить кучу низкой фрагментации Windows (LFH) для кучи CRT, что может значительно повысить производительность в высокомасштабируемых сценариях.
См. также
Файлы среды выполнения C (CRT) и стандартной библиотеки C++ (STL) .lib