マルチスレッド ライブラリのパフォーマンス
シングルスレッド CRT は使用できなくなりました。 この記事では、マルチスレッド ライブラリから最大のパフォーマンスを得る方法について説明します。
パフォーマンスの最大化
マルチスレッド ライブラリのパフォーマンスが向上し、現在は削除されたシングルスレッド ライブラリのパフォーマンスに近づきました。 さらに高いパフォーマンスが求められる状況に対応するために、いくつかの新機能が提供されています。
独立したストリーム ロックを使用すると、ストリームをロックし、ストリームに直接アクセスする
_nolock
関数 を使用できます。 この機能により、重要なループの外側でロック使用法を巻き上げることができます。スレッドごとのロケールにより、マルチスレッド シナリオのロケール アクセスのコストが削減されます (
_configthreadlocale
を参照)。ロケール依存関数 (名前が _l で終わる) は、ロケールをパラメーターとして受け取り、大幅なコスト (
printf
、_printf_l
、wprintf
、_wprintf_l
など) を削除します。一般的なコードページの最適化によって、多くの短い操作の費用が削減されます。
_CRT_DISABLE_PERFCRIT_LOCKS
を定義すると、すべての I/O 操作でシングルスレッド I/O モデルが想定され、_nolock
形式の関数が使用されます。 このマクロを使用すると、I/O ベースのシングル スレッド アプリケーションのパフォーマンスを向上させることができます。CRT ヒープ ハンドルの公開により、CRT ヒープ用の Windows Low Fragmentation Heap (LFH) を有効にして、高い拡張性が求められるシナリオでパフォーマンスを大幅に向上させることができます。