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 (zprintf. B. , , _printf_l, ). _wprintf_lwprintf

  • 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.

Siehe auch

C-Runtime-Dateien (CRT) und C++ Standard Library (STL) .lib