버퍼링
는 HDD 히트 및 시스템 호출을 줄임으로써 성능을 크게 향상시킬 수 있습니다.
char buffer [n]; std :: ifstream file ( "file.txt"); file.rdbuf ()-> pubsetbuf (buffer, n);
로케일 처리
char Buffer[N]; std::ifstream file("file.txt"); file.rdbuf()->pubsetbuf(Buffer, N);로컬은 문자 변환, 필터링 및 동적 파견으로 인해 성능 오버 헤드를 소개 할 수 있습니다. 이러한 작업을 비활성화하는 기본 C 로케일로 로케일을 설정하면 성능을 향상시킬 수 있습니다. (std :: ios_base :: sync_with_stdio (false))는 관찰 가능한 성능 이점을 제공하지 않습니다.
측정
char Buffer[N]; std::ifstream file("file.txt"); file.rdbuf()->pubsetbuf(Buffer, N);
벤치마킹은 다양한 결과를 드러냅니다. g 3.2.
G 4.7.2에서 Ubuntu 11.10 : C 25% 더 빠른
G 4.4.5에서 Ubuntu Linux 10.10 : C 17% 더 빠른 g on macos x : c 111% 더 느린
clang 3.8.0 kubuntu 16.04 : Couc 66%. 더 빠른
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3