[java] Java에서 힙 크기 늘리기

8GB RAM이있는 Windows 2003 서버 (64 비트)에서 작업하고 있습니다. 힙 메모리를 최대로 늘리려면 어떻게해야합니까? -Xmx1500m플래그를 사용하여 힙 크기를 1500Mb로 늘립니다. 힙 메모리를 실제 메모리의 75 % (6GB 힙)로 늘릴 수 있습니까?



답변

32 비트 시스템에서 4GB로 늘릴 수 있습니다. 64 비트 시스템을 사용하는 경우 더 높아질 수 있습니다. 32 비트 시스템에서 5g를 요청하면 java는 잘못된 값에 대해 불평하고 종료됩니다.

다른 사람들이 게시했듯이 cmd-line 플래그를 사용하십시오.

java -Xmx6g myprogram

java -X를 입력하여 전체 목록 (또는 거의 전체 목록)을 얻을 수 있습니다.


답변

명령 행 옵션을 사용하여 JVM이 할당 한 힙 크기를 늘릴 수 있습니다. 여기에는 3 가지 옵션이 있습니다.

-Xms<size>        set initial Java heap size
-Xmx<size>        set maximum Java heap size
-Xss<size>        set java thread stack size

java -Xms16m -Xmx64m ClassName

위의 줄에서 최소 힙을 16mb로, 최대 힙을 64mb로 설정할 수 있습니다


답변

32 비트 JVM에서 이론적으로 설정할 수있는 가장 큰 힙 크기는 4gb입니다. 더 큰 힙 크기를 사용하려면 64 비트 JVM을 사용해야합니다. 다음을 시도하십시오 :

자바 -Xmx6144M -d64

-d64 플래그는 JVM이 64 비트 모드에서 실행되도록 지시하므로 중요합니다.


답변

Eclipse에서 직접 JVM이 할당 한 힙 크기를 증가시킬 수 있습니다.

실행 —-> 실행 구성 —-> 인수

-Xmx1g를 입력하십시오 (Xmx256m 또는 Xmx1g와 같은 최대 크기를 설정하는 데 사용됩니다 ……. m-> mb g —> gb)


답변

자바 -d64 -Xms512m -Xmx4g HelloWorld

-d64 : 64 비트 JVM 사용 -Xms512m : 초기 힙 크기를 512MB로 설정 -Xmx4g : 최대 힙 크기를 4GB로 설정합니다 (여기서 Java 파일 이름은 HelloWorld.java).


답변

아래와 같이 JVM 매개 변수 -Xms-Xmx를 전달하여 힙 크기를 늘릴 수 있습니다 .

Jar 파일의 경우 :

java -jar -Xms4096M -Xmx6144M jarFilePath.jar

Java 파일의 경우 :

 java -Xms4096M -Xmx6144M ClassName

위의 매개 변수는 InitialHeapSize (-Xms) 를 4GB (4096MB)로, MaxHeapSize (-Xmx) 를 6GB ( 6144MB )로 늘립니다 .

그러나 젊은 세대 힙 크기는 동일하게 유지되며 추가 HeapSize는 이전 세대 힙 크기에 추가됩니다 . 하기 위해서는 젊은 세대 힙 올드 세대 힙의 크기를 동일하게 사용 NewRatio = 1 -XX : -UseAdaptiveSizePolicy -XX PARAMS합니다.

java -jar -Xms4096M -Xmx6144M -XX:NewRatio=1 -XX:-UseAdaptiveSizePolicy pathToJarFile.jar

-XX : NewRatio = Old Gen Heap Size : Young Gen HeapSize (원하는 비율을 얻기 위해이 비율로 재생할 수 있습니다).


답변

힙 메모리를 실제 메모리 (6GB 힙)의 75 %로 늘릴 수 있습니까?

그래 넌 할수있어. 실제로 원하는 경우 실제 메모리 양보다 더 많이 늘릴 수 있습니다.

이를 수행하는 것이 좋은지 여부는 시스템에서 실행중인 다른 양에 따라 다릅니다. 특히, 현재 실행중인 응용 프로그램 및 서비스의 “작업 집합”이 사용 가능한 실제 메모리를 크게 초과하면 시스템이 “쓰레기”되어 가상 메모리 페이지를 디스크간에 이동하는 데 많은 시간이 소요됩니다. 결과적으로 시스템이 엄청나게 느려집니다.