Windows에서 대용량 램 충분히 활용하기
큰 메모리를 충분히 활용하고 싶어서 여러가지 방법을 찾아봤다.
방법
가상 메모리 해제
swapfile.sys 비활성화
관리자 권한으로 실행한 PowerShell
에서, (Win + X, A)
New-ItemProperty -Path “HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management” -Name SwapfileControl -Value 0 -PropertyType DWORD -Force
를 실행한다.
pagefile.sys 비활성화
관리자 권한으로 실행한 cmd
에서, (Win + R, cmd
입력 후 Ctrl + Shift + Enter)
wmic computersystem where name="%computername%" set AutomaticManagedPagefile=False
파일 시스템 캐싱 메모리 설정
참고: 램디스크는 비효율적이다.
관리자 권한으로 실행한 PowerShell
이나 cmd
에서
fsutil behavior set memoryusage 2
를 실행한다.
PS C:\WINDOWS\system32> fsutil behavior set memoryusage 2
참고: 이 설정의 변경 내용을 적용하려면 다시 부팅해야 합니다.
MemoryUsage = 2
이후 재부팅.
최대 절전 모드 비활성화
최대 절전모든는 성능에 큰 영향을 미치진 않지만, 최대 절전 모드에 사용되는 C:\\hyberfile.sys
파일의 크기가 램의 용량과 같기 때문에 비활성화했다.
관리자 권한으로 실행한 PowerShell
이나 cmd
에서,
powercfg -h off
를 실행한다.
결과
속도
IntelliJ 인덱싱이 눈에 띄게 빨라졌다. 이것 때문에 램 8기가짜리 노트북에도 이 글에 나온 모든 방법을 적용했다.
메모리 사용량
딱히 늘었는지도 모르겠다. 기본값이 2가 아닌 이유가 궁금할 정도로 차이가 없다.
참고: 램디스크는 비효율적이다. {#ramdisk-is-inefficient}
pagefile.sys는 일종의 스왑파일이고, 램디스크에 스왑 파일을 올리는 건 바보짓이다. OS는 램 모자랄 때 스왑 파일을 램 대신 사용한다.
램디스크는 램을 미리 점유하므로, 스왑 파일을 더 자주 쓰게된다. 스왑 파일이 램에 있으니까 접근 속도야 빠르겠지만, 메모리를 스왑으로 옮기는 건 OS입장에서 가벼운 작업이 아니다.