マルチスレッド ライブラリのパフォーマンス

シングルスレッド CRT は使用されなくなりました。 このトピックでは、マルチスレッド ライブラリから最大限のパフォーマンスを得る方法について説明します。

パフォーマンスの最大化

マルチスレッド ライブラリのパフォーマンスは改善され、現在は使用されなくなったシングルスレッド ライブラリのパフォーマンスに近くなりました。 より高いパフォーマンスが必要な状況に対しては、以下の新しい機能を使用できます。

  • 独立したストリーム ロックにより、ストリームをロックしてから、そのストリームに直接アクセスする _nolock 関数を使用できます。 これにより、重要なループの外側でのロックの使用率を上げることができます。

  • スレッドごとのロケール指定により、マルチスレッド シナリオでのロケール アクセスによるパフォーマンスの低下を抑えることができます (_configthreadlocale の説明を参照してください)。

  • ロケール依存関数 (_l で終わる名前の関数) は、ロケールをパラメーターとして受け取り、パフォーマンスの低下を抑えます (たとえば printf、_printf_l、wprintf、_wprintf_l)。

  • 共通コードページを最適化することにより、多くの短い操作によるパフォーマンスの低下を抑えることができます。

  • _CRT_DISABLE_PERFCRIT_LOCKS を定義することにより、すべての I/O 操作が、強制的に、シングルスレッド I/O モードを前提とし、関数の _nolock 形式を使用するようにできます。 これにより、高レベルに I/O ベースのシングルスレッド アプリケーションに対して高いパフォーマンスを期待できます。

  • CRT ヒープ ハンドルを公開することにより、CRT ヒープに対して Windows LFH (Low Fragmentation Heap) を有効にできます。これにより、さまざまなシナリオにおいてパフォーマンスを大幅に改善できます。

参照

参照

C ランタイム ライブラリ