2009-10-26 2 views
2

Windows에 페이지를 표시하지 않으려는 대형 데이터 블록이 메모리에 있습니다. 메모리는 디스크의 파일에서 재구성 할 수있는 데이터 섹션의 캐시입니다. 캐시는 충분한 메모리가있는 한 하드 드라이브 액세스를 완전히 막기위한 것이므로 Windows에서 페이징을 시작하면 쓸모가 없습니다. 페이징 대신, 필자는 필요할 경우 간단히 메모리를 비우도록 응용 프로그램을 원합니다 (as mentioned in this post).Windows가 일부 데이터를 페이징하지 못하도록 함

메모리 블록을 페이징 불가능으로 할당 할 수있는 방법이 있습니까?

답변

1

VirtualLock() 아마도 당신이 찾고있는 것입니다. Raymond Chen은 그것에 더 많은 정보를 가지고 있습니다 here.

+0

저는 레이몬드의 정보가 더 이상 적용될 수 없다고 생각합니다. 2007 년에는 사실일지도 모르겠지만 [내 실험] (http://stackoverflow.com/a/15001077/33080)은 실행 가능한 스레드가없는 경우에도 메모리가 아무리 많은 경우에도 물리적 페이지에 매핑 된 상태로 남을 것이라고 제안합니다 압력. 따라서 [MSDN] (http://msdn.microsoft.com/en-gb/library/windows/desktop/aa366895%28v=vs.85%29.aspx)은 한 번에 올바른 것입니다. –

관련 문제