다중 스레드 라이브러리 성능Multithreaded Libraries Performance

단일 스레드 CRT는 더 이상 사용할 수 없습니다.The single-threaded CRT is no longer available. 이 항목에서는 다중 스레드 라이브러리에서 최대 성능을 얻는 방법에 대해 설명합니다.This topic discusses how to get the maximum performance from the multithreaded libraries.

성능 극대화Maximizing performance

다중 스레드 라이브러리의 성능이 개선되어 지금은 제거된 단일 스레드 라이브러리의 성능에 근접하게 되었습니다.The performance of the multithreaded libraries has been improved and is close to the performance of the now-eliminated single-threaded libraries. 더 높은 성능이 필요한 경우를 위해 여러 가지 새로운 기능이 추가되었습니다.For those situations when even higher performance is required, there are several new features.

  • 독립적인 스트림 잠금 기능을 통해 스트림을 잠근 다음 스트림에 직접 액세스하는 _nolock 함수를 사용할 수 있습니다.Independent stream locking allows you to lock a stream and then use _nolock Functions that access the stream directly. 이로 인해 중요한 루프 외부에서 잠금 사용을 해제할 수 있습니다.This allows lock usage to be hoisted outside critical loops.

  • 스레드별 로캘은 다중 스레드 시나리오에 대해 로캘 액세스 비용을 줄여 줍니다(_configthreadlocale 참조).Per-thread locale reduces the cost of locale access for multithreaded scenarios (see _configthreadlocale).

  • 로캘 종속 함수(이름이 _l로 끝남)는 로캘을 매개 변수로 사용하여 비용을 상당히 절감합니다(예: printf, _printf_l, wprintf, _wprintf_l).Locale-dependent functions (with names ending in _l) take the locale as a parameter, removing substantial cost (for example, printf, _printf_l, wprintf, _wprintf_l).

  • 공통 코드 페이지에 대한 최적화는 많은 짧은 작업의 비용을 절감합니다.Optimizations for common codepages reduce the cost of many short operations.

  • _CRT_DISABLE_PERFCRIT_LOCKS를 정의하면 모든 I/O 작업이 단일 스레드 I/O 모델을 가정하고 함수의 _nolock 형태를 사용하게 됩니다.Defining _CRT_DISABLE_PERFCRIT_LOCKS forces all I/O operations to assume a single-threaded I/O model and use the _nolock forms of the functions. 이로 인해 상당히 I/O를 기반으로 하는 단일 스레드 응용 프로그램의 성능이 향상됩니다.This allows highly I/O-based single-threaded applications to get better performance.

  • CRT 힙 핸들을 노출하면 CRT 힙에 대해 Windows LFH(낮은 조각화 힙)가 가능해져 규모가 큰 시나리오에서 성능이 상당히 개선될 수 있습니다.Exposure of the CRT heap handle allows you to enable the Windows Low Fragmentation Heap (LFH) for the CRT heap, which can substantially improve performance in highly scaled scenarios.

참고 항목See Also

CRT 라이브러리 기능CRT Library Features