2010-11-23 2 views
1

C++ win32api를 사용하여 Windows 파일 읽기 캐시를 비우는 (비우기) 방법은 무엇입니까?플러시 파일 읽기 캐시

+0

콜드 스타트 ​​성능을 측정하려고합니까? –

+0

예, 지금 당장은 컴퓨터를 다시 시작해야합니다 ...별로 실용적이지 않습니다 ... – ronag

+0

Windows "파일 읽기 캐시"는 주로 의사 표현입니다. 직접적인 방법은 없습니다. 예. 디스크에있는 파일에 해당하는 여러 페이지가 RAM에 있지만 메모리 맵 파일이나 모듈에 페이지가 있기 때문에 이러한 매핑이 존재할 수도 있습니다. 또한 단일 페이지가 여러 가지 이유로 RAM에있을 수 있습니다. 모든 페이지는 RAM에서 삭제 될 수 있습니다. 특히 당신이 버리고 싶어 할 것 같습니까? 결국 RAM에서 자신의 프로그램을 퇴거시킬 수 있습니다. – MSalters

답변

0

IOCTL_DISK_SET_CACHE_INFORMATION으로 DeviceIoControl을 시도해보십시오.

+1

왜 도움이되지 않는 대답을 표시해야합니까? 잭이 그것을 얻어야하는 것처럼 보입니다. –

2

필자는 (쓰기 캐시를 비울 수는 있지만) FILE_FLAG_NO_BUFFERING을 사용하여 CreateFile을 통해 파일을 열 수 있다고 생각합니다. 이렇게하면 시스템 캐시에서 읽지 않고 데이터를 캐시 할 수있는 장치에서 바로 읽습니다.

+0

제 3 자 라이브러리를 사용하고 있습니다. CreateFile 호출에 액세스 할 수 없습니다. – ronag

+0

그러면 라이브러리가하려는 일에 적합하지 않습니다. 단순히 드라이브의 성능을 측정하기 위해 파일을 읽으려고한다면 순수한 WinAPI를 사용하는 것이 그리 어렵지 않습니다. –