멀티 기가 바이트 파일의 후속 읽기 속도가 더 빠른 이유는 무엇입니까?


0

주어진 데이터 파일에서 처음 실행될 때 후속 실행보다 ~ 3-5 배 느리게 실행되는 Windows 7 시스템에서 실행되는 알고리즘 테스트 소프트웨어가 있습니다. 우리의 알고리즘은 단순히 한 번에 몇 백 바이트의 파일을 읽고 ~ 50 번의 읽기 작업마다 하나의 결과를 다시 씁니다.

Windows 어딘가에 고유 한 캐싱이 있습니까 (3GB 파일로는 보이지 않습니까?) 첫 실행 속도를 높일 수있는 방법이 있습니까?


그렇습니다. Windows에는이를 담당 할 수있는 캐시가 있습니다. msdn.microsoft.com/en-us/library/windows/desktop/…
Martin von Wittich

특정 파일에 대해 일시적으로 비활성화하거나 일반적으로 우리 가보고있는 것을 확인하는 방법이 있습니까?
Jon Cage

음, MSDN에 따라 당신은 국기와 함께 특정 파일 캐싱을 사용하지 않도록 설정할 수 있습니다 FILE_FLAG_NO_BUFFERING에서 CreateFile호출. 코드를 변경할 수 없다면 다른 접근법을 사용해야 할 것입니다. : 당신은 실행 사이의 캐시를 비우을 시도 할 수 stackoverflow.com/questions/478340/...
마틴 폰 WITTICH

답을 마틴으로 게시하면 받아들입니다. 제공 한 링크의 소프트웨어를 사용하여 캐시에서 파일을 플러시하고 결과적으로 일관된 벤치 마크 결과를 생성 할 수있었습니다.)
Jon Cage

나는 답변으로 게시했습니다 :)
Martin von Wittich

답변:


2

Windows 어딘가에 고유 한 캐싱이 있습니까 (3GB 파일로는 보이지 않습니까?)

예, Windows에는이를 담당 할 수있는 캐시가 있습니다 .

연결된 MSDN 기사에 따르면 CreateFile 호출에서 플래그가 FILE_FLAG_NO_BUFFERING 인 특정 파일에 대해 캐싱을 비활성화 할 수 있습니다. 코드를 변경할 수없는 경우 대신 SysInternals RAMMap 앱 을 사용하여 벤치 마크 실행간에 캐시를 재설정 할 수 있습니다 .

자세한 내용은 SO 관련 게시물을 참조하십시오 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.