Leistung von Multithreadbibliotheken
Singlethread-CRT ist nicht mehr verfügbar. In diesem Artikel wird erläutert, wie Sie die maximale Leistung aus den Multithreadbibliotheken erzielen.
Maximieren der Leistung
Die Leistung von Multithreadbibliotheken wurde verbessert und erreicht fast die Leistung der jetzt beseitigten Singlethread-Bibliotheken. Für Situationen, in denen sogar eine noch höhere Leistung erforderlich ist, gibt es mehrere neue Features.
Durch die unabhängige Streamsperre können Sie einen Datenstrom sperren und dann Funktionen verwenden
_nolock
, die direkt auf den Datenstrom zugreifen. Dieses Feature ermöglicht die Sperrnutzung, die außerhalb kritischer Schleifen entfernt werden kann.Das Gebietsschema pro Thread reduziert die Kosten für den Gebietsschemazugriff für Multithread-Szenarien (siehe
_configthreadlocale
).Gebietsschemaabhängige Funktionen (mit Namen, die in _l enden) nehmen das Gebietsschema als Parameter an, wodurch erhebliche Kosten entfernt werden (z
printf
. B. , ,_printf_l
, )._wprintf_l
wprintf
Optimierungen für allgemeine Codepages verringern die Kosten für viele kurze Vorgänge.
Durch das Definieren
_CRT_DISABLE_PERFCRIT_LOCKS
aller E/A-Vorgänge wird erzwungen, ein E/A-Modell mit einem einzelnen Thread anzunehmen und die_nolock
Formen der Funktionen zu verwenden. Mit diesem Makro können Hoch-E/A-basierte Singlethread-Anwendungen eine bessere Leistung erzielen.Das Verfügbarmachen des CRT-Heap-Handles ermöglicht Ihnen das Aktivieren des Windows Low Fragmentation Heap (LFH) für den CRT-Heap, wodurch die Leistung in Szenarien mit hoher Skalierung wesentlich verbessert werden kann.