ILoveCoffee, ILoveJava

Windows x86 (32bit)에서 사용자 메모리 강제적 할당

jeeyong 2007. 12. 20. 09:55
일반적으로 Windows 환경에서 2000, xp, 2003 32비트 에디션에서는 물리적인 메모리를 4G까지 사용할 수 있습니다.
 
그렇다면 자바 힙 메모리도 OS나 다른 어플리케이션이 사용할 수 있는 메모리를 제외한 메모리를 사용할 수 있어야 하는데 실제로는 그렇지 못합니다.
 
이유는 Windows에서 Application에서 사용할 메모리는 커널 2G, 사용자 2G 로 되어 있기 때문입니다.
 
즉 우리가 사용하는 자바 힙 메모리도 제한이 생기는거죠.
 
그렇다면 힙메모리를 늘리는 방법은 커널, 사용자 메모리를 조정하는 것입니다.
윈도우에는 부팅 정보를 담고 있는 파일 c:\boot.ini 가 있는데 여기에 있는 옵션에 다음과 같이 추가하는 것입니다.
 
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect /3GB

 
이렇게 되면 자바 힙 메모리를 1g 정도 더 할당할 수 있습니다.
 
참고 사이트) http://support.microsoft.com/kb/291988/en-us