多线程库性能
单线程的 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),这将大大改进高度缩放的方案的性能。