C에서 IOStream 성능을 최적화하는 방법
C 사용자는 후자의 인터페이스에도 불구하고 C IOStream보다 printf/scanf 기능 계열을 선호하는 경우가 많습니다. 장점. 성능 문제가 이러한 선호의 주요 원인으로 종종 인용됩니다.
버퍼링
기본 streambuf의 버퍼 크기를 늘리면 HDD 적중 횟수 및 시스템을 줄여 성능을 크게 향상시킬 수 있습니다. 전화. 이는 다음을 통해 수행됩니다.
char Buffer[N]; std::ifstream file("file.txt"); file.rdbuf()->pubsetbuf(Buffer, N);
로캘 처리
로캘은 문자 변환, 필터링 및 동적 디스패치로 인해 성능 오버헤드를 초래할 수 있습니다. 이러한 작업을 비활성화하는 기본 C 로캘로 로캘을 설정하면 성능이 향상될 수 있습니다.
std::locale::global(std::locale("C"));
동기화
C stdio(std::ios_base: :sync_with_stdio(false))는 눈에 띄는 성능 이점을 제공하지 않습니다.
측정
다양한 컴파일러와 플랫폼을 사용하여 벤치마킹하면 다양한 결과가 나타납니다.
이러한 결과는 IOStream 성능이 향상되었음을 나타냅니다. 특정 구현 구현에 따라 다릅니다. 따라서 플랫폼 전반에 걸쳐 IOStream을 최적화할 수 있는 보편적인 솔루션은 없습니다.
위 내용은 C IOStream 성능은 실제로 printf/scanf보다 느립니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!