2014-03-26 2 views
5

Windows에서 파일, 실행 파일 및 동적 라이브러리와 같은 디스크의 메모리 데이터를 저장하기 위해 Linux의 페이지 캐시와 비슷한 개념이 있다고 가정합니다. 적어도 캐시를 없애거나 캐시를 지우거나 없애는 것이 가능한지 궁금합니다.Windows에서 페이지 캐시를 비활성화하거나 플러시

+0

파일을 열 때, 프로그래밍 방식으로 또는 전체 Windows 설치시 의미가 있습니까? 자세한 내용은 다음을 확인하십시오. http://msdn.microsoft.com/en-us/library/windows/desktop/aa364218.aspx –

+0

[캐시 테스트를 반복하기 위해 파일 캐시 지우기] 가능한 복제본 (http://stackoverflow.com)/questions/478340/clear-file-cache-to-repeat-performance-testing) – snemarch

답변

11

이것은 대기 목록 windows 아래에 있습니다. 전역 적으로 또는 하나의 볼륨에 대해 또는 하나의 파일 핸들에 대해 제거 할 수 있습니다. 자세한 내용은 프로그램에 line 239을 참조하십시오

전 세계적으로 당신은 EmptyEmpty Standby List

프로그래밍 방식을 선택하는 readily available program은 Microsoft TechNet에서 사용하여 전송할 수 있습니다
, 당신은 문서화되지 않은 NtSetSystemInformation 기능을 사용하여 같은 일을 달성 할 수 이전에 언급 한 것과 같은 일을합니다. 하나 개의 파일 핸들


열기 FILE_FLAG_NO_BUFFERING으로 파일 : 문서는 버퍼링없이 파일을 열말한다으로하는 한 거짓말되지만, 윈도우까지 98에서 모든 Windows 버전에 대한 사실, 관찰 행동 Windows 8은 모든 사람에게 해당 파일의 전체 캐시 내용을 버리고이 핸들을 사용하는 읽기에서 캐시를 다시 채우지 않습니다. 하나의 완전한 볼륨
볼륨 손잡이를 들어

, 그래서 당신은 볼륨 핸들을 엽니 적절한 privilegues이 가정 단지 파일 핸들 (다소 특별한 하나,하지만 여전히), 당신은 완전한 대해 동일한 작업을 수행 할 수 있습니다 음량.

또한 Mehrdad의 대답 here에서 지적한대로 기능/버그 (feature-bug?)가있어 공유 쓰기없이 파일을 열기 만하면 적절한 권한이없는 경우에도 볼륨의 캐시를 무효화 할 수 있습니다. 적어도 하나의 최신 Windows 버전에서.
파일 시스템 내부 데이터를 변경할 수 있기 때문에 쓰기에 유효한 모든 열린 파일이 성공할 때 발생합니다 (그러나이 파일은 기능이기 때문에). 분명히 볼륨을 열면 실패합니다. 곤충).