マルチスレッド ライブラリのパフォーマンス
シングルスレッド 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) を有効にして、高い拡張性が求められるシナリオでパフォーマンスを大幅に向上させることができます。