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.