Поделиться через


Производительность многопотоковых библиотек

Однопоточные CRT более не доступны. В этом разделе описано, как получить максимальную производительность при использовании многопоточных библиотек.

Максимальное увеличение производительности

Производительность многопоточных библиотек была улучшена и близка к производительности исключенных теперь однопоточных библиотек. Есть несколько новых функций для ситуаций, когда нужна еще более высокая производительность.

  • Независимая блокировка потоков позволяет блокировать поток и затем использовать Функции _nolock, которые получают доступ к потоку напрямую. Это позволяет использовать блокировки вне критических циклов.

  • Языковой стандарт по потокам снижает стоимость доступа языкового стандарта для многопоточного сценариев (см. _configthreadlocale).

  • Функции, зависящие от языкового стандарта, (с оканчивающимися на _l именами) принимают в качестве параметра языковой стандарт, удаляя существенную часть затрат (например, printf, _printf_l, wprintf, _wprintf_l).

  • Оптимизации для общих кодовых страниц снижают стоимость множества простых операций.

  • Определение _CRT_DISABLE_PERFCRIT_LOCKS заставляет все операции ввода-вывода принять модель однопоточного ввода-вывода и использовать _nolock версии функций. Это позволяет однопоточным приложениям, основанным в основном на вводе-выводе, получить более высокую производительность.

  • Предоставление дескриптора кучи CRT позволяет включить кучу низкой фрагментации Windows (LFH) для кучи CRT, что может значительно повысить производительность в легко масштабируемых сценариях.

См. также

Ссылки

Функции библиотеки CRT