답변:
예 : 프로그램에 VirtualLock 함수를 호출하십시오 .
프로세스가 잠근 페이지는 프로세스가 잠금을 해제하거나 종료 될 때까지 실제 메모리에 남아 있습니다. 이러한 페이지는 잠겨있는 동안 페이지 파일에 기록되지 않아야합니다.
SetProcessWorkingSetSize 함수도 도움이 될 수 있다고 생각합니다 .
내가 생각하는 사람들에게는 이것이 유용 할 것이라고 제안 하는 이단자입니다 .
메모리에서 페이지를 잠그는 데는 유효한 이유가있을 수 있습니다. 유효한 이유는 사용자가 CD 버너를 실행 중이고 CD 버너가 지속적으로 페이징 아웃되어 버퍼 언더런이 발생하여 코스터를 생성하기 때문일 수 있습니다. 이 경우 메모리 버퍼를 잠그면 페이징되지 않도록 할 수 있습니다. 그래도 나머지 컴퓨터가 크롤링 속도를 늦추더라도 사용자에게 코스터를 제공하는 것보다 낫기 때문입니다. 다른 유효한 이유도있을 수 있습니다. 제 요점은 일반적으로 메모리에 페이지를 잠그는 것이 권장되지 않지만 유효한 상황이 여전히 존재하며 아이디어를 죽이는 것이 여기 OP에 도움이 될 것이라고 생각하지 않습니다.
업데이트 : Process Hacker 의 Reduce Working Set
메뉴 옵션을 살펴보십시오 .
SetProcessWorkingSetSize
. 한 가지 방법입니다. 물론 개발자가 아니기 때문에 그 의미를 모른다면 할 수있는 일은 많지 않습니다. 그러나 여전히 가능하고 불가능하다고 말하는 것은 여전히 옳지 않습니다. OP보다 더 많은 지식이 필요합니다.
내가 찾은 유일한 방법은 페이지 파일을 비활성화하는 것입니다. 그러나 완벽한 해결책은 아닙니다. RAM 한도에 가까워지면 오류 메시지가 표시되고 충돌 덤프가 제대로 저장되지 않을 수 있으므로 문제 해결이 필요한 경우 다시 켜십시오. 그 외에, 나는 페이지 파일없이 Win7을 장애없이 몇 달 동안 사용 해 왔습니다.
내 경험 : 나는 피아노 소프트웨어 (1GB RAM 사용)에 대해이 문제가 있었는데 잠시 동안 사용하지 않으면 스왑에 던져 질 것입니다. 몇 시간 후에 피아노 건반을 연주하면 스왑이 사운드를 재생할 수있을만큼 빨리 다시로드되지 않기 때문에 결함이 생길 수 있습니다. (그런 다음 다시 키를 넣기 위해 모든 팔에 팔을 대고있었습니다!)
RAM이 문제가되는 경우 추가 구매를 권장합니다 (예 : Windows 7 x64의 경우 8-12GB). RAM을 의식적으로, RAM을 많이 갖는 것은 신의 선물입니다.
그러나 이전에는 SSD 드라이브를 가져와 스왑을 고려해야합니다. 스왑 복구를 크게 가속화하고 다른 많은 시스템 이점을 제공합니다. RAM은 사용하지 않을 때 이점을 제공하지 않습니다.
페이지 파일 사용은 많은 요소에 따라 다릅니다. 많은 프로그램을 사용하고 동시에 모든 프로그램에 충분한 RAM이없는 경우 일부 또는 전부가 페이지 파일로 교체 될 수 있습니다.
4GB의 RAM이 있고 4GB의 일부를 차단하는 비디오 카드 및 기타 리소스 사용자로 인해 약 3GB의 RAM을 사용할 수 있다고 가정하면 메모리를 많이 차지하지 않는 몇 가지 프로그램 만 사용합니다. 스왑 파일이 필요하지 않습니다. 그러나 Windows Vista와 7은 프로그램을 디스크로 바꾸는 데 악명이 높습니다.
예전에는 Windows 7의 스왑 성을 감소시키는 설정을 사용 했었습니다 (스왑은 Linux 용어이지만 Windows에도 적용됨). Windows 스와핑 공격성을 길들이기위한 레지스트리 설정이 있기 때문에 마이크로 소프트가 잘 알고 있지만 숨겨진 방식),하지만 더 이상 찾을 수없는 것 같습니다. 그것을 찾는 것은 내가 여기서 끝내는 방법입니다. 내가 찾은이 설정의 가장 좋은 대안은 고정 크기 스왑 파일을 사용하는 것입니다 (32 비트 OS에서 4096-4096, 64 비트 시스템에서 6GB의 시스템 RAM이 있으므로 12GB 사용) 전용 파티션에서. 여분의 7200rpm 200GB 드라이브가 있으면이 드라이브에 모든 스왑 파티션 (Windows XP, 7, 7 64 비트 및 다양한 Linux)을 배치합니다. 그것은 나를 위해 일하는 것 같지만 YMMV.