Udostępnij za pośrednictwem


Wydajność bibliotek wielowątkowych

Jednowątkowy CRT nie jest już dostępny. W tym artykule omówiono sposób uzyskania maksymalnej wydajności z bibliotek wielowątków.

Maksymalizowanie wydajności

Wydajność bibliotek wielowątkowych została ulepszona i jest zbliżona do wydajności obecnie wyeliminowanych bibliotek jednowątkowych. W takich sytuacjach, gdy wymagana jest jeszcze wyższa wydajność, istnieje kilka nowych funkcji.

  • Niezależne blokowanie strumienia umożliwia blokowanie strumienia, a następnie używanie _nolock funkcji , które uzyskują bezpośredni dostęp do strumienia. Ta funkcja umożliwia wciągnięty użycie blokady poza pętlami krytycznymi.

  • Ustawienia regionalne na wątek zmniejszają koszt dostępu do ustawień regionalnych w scenariuszach wielowątkowych (zobacz _configthreadlocale).

  • Funkcje zależne od ustawień regionalnych (z nazwami kończącymi się na _l) przyjmują ustawienia regionalne jako parametr, usuwając znaczny koszt (na przykład , , _printf_l, wprintf, _wprintf_l).printf

  • Optymalizacje typowych stron kodowych zmniejszają koszt wielu krótkich operacji.

  • Definiowanie _CRT_DISABLE_PERFCRIT_LOCKS wymusza, aby wszystkie operacje we/wy zakładały model we/wy pojedynczego wątku i używały _nolock formularzy funkcji. To makro umożliwia wysokowątkowy dostęp do aplikacji jednowątkowych opartych na we/wy w celu uzyskania lepszej wydajności.

  • Ekspozycja uchwytu sterty CRT umożliwia włączenie sterty fragmentacji systemu Windows (LFH) dla sterty CRT, co może znacznie poprawić wydajność w scenariuszach o dużej skali.

Zobacz też

Pliki C runtime (CRT) i C++ Standard Library (STL) .lib