2014-02-05 2 views
5

내 컴퓨터에 16GB의 RAM이 있다면 실행중인 Java 명령 줄 프로그램에 얼마만큼 할당 할 수 있습니까? 나는 java -Xmx 16g...이 내 시스템을 망칠 것이라고 생각하니?얼마나 많은 메모리를 할당 할 수 있습니까?

편집 :
는 의견에 비추어, 나는 java -Xmx16g...을 시도하고 내 컴퓨터를 충돌하지 않았다. 프로그램에 여전히 메모리가 부족합니다. 나는 java -Xmx32g...을 시도했는데, 그것은 내 컴퓨터를 파괴했다.

아래의 의견 (실제로 밝혀져 왔음)에서 배정을 계속 해봐야 할 것 같습니다.

+3

시도 할 때 어떤 일이 발생 했습니까? –

+1

시도해보십시오. OS가 제공하는 [스왑 공간] (http://en.wikipedia.org/wiki/Paging)은 모든 메모리가 동시에 필요하지 않는 한 가상 메모리의 총 용량을 실제 메모리 크기보다 크게 만듭니다. 페이지를 "스왑 아웃"할 수 있음). – TypeIA

+0

16g? 진지하게? –

답변

2

maximum heap size이 링크는 유용 할 수 있습니다.

귀하의 OS에 따라 다릅니다.

6

가상 머신의 힙 메모리는 옵션 에 의해 제어되는 크기 - XMS-의 -Xmx.

첫 번째는 초기 힙 크기와 두 번째 최대 크기를 지정합니다.

할당은 JVM 자체 내에서 수행하고, 아닌 OS에있다. 더 많은 메모리가 필요하면 JVM은 Xmx에 도달 할 때까지 메모리 블록을 할당합니다.

이상이 필요한 경우 OutOfMemoryError가 발생합니다.

OS 특정 동작에 따라 아닌 VM에서만 실행의 초기에 오퍼레이팅 시스템에 메모리를 할당하는 원인의 -Xmx, XMS을 위해 같은 값을 사용하는 것이 일반적이다. 이 메모리 (스왑 + 메모리 RAM)

이없는 당신이 당신의 -Xmx로 32g을 설정하고 시스템 충돌 이후 보인다 귀하의 경우에는


, 수동으로 변경하는 경우 시스템의 가상 메모리 크기이면 구성이 작동합니다.

0

OS가 16GB를 초과하여 할당 할 수 없으므로 시스템이 중단 될 수 있습니다. XMX와 XMS는 별도의 대답으로 언급되었지만 기계 리소스 (메모리 크기와 프로세서 수)를 검사하고 장기 실행 메모리에 최적 인 다양한 매개 변수를 설정하려고 시도하는 -XX : + AggressiveHeap 옵션도 있습니다 할당 집약적 인 업무

관련 문제