다음을 통해 공유


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

단일 스레드 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(낮은 조각화 힙)가 가능해져 규모가 큰 시나리오에서 성능이 상당히 개선될 수 있습니다.

참고 항목

C 런타임(CRT) 및 C++ STL(표준 라이브러리) .lib 파일