JVM에서 의 사용 Xms
및 Xmx
매개 변수를 설명하십시오 . 그것들의 기본값은 무엇입니까?
답변
플래그 Xmx
는 JVM (Java Virtual Machine)의 최대 메모리 할당 풀을 Xms
지정하고 초기 메모리 할당 풀 을 지정합니다.
이는 JVM이 Xms
메모리 양 으로 시작되고 최대 Xmx
메모리 양 을 사용할 수 있음을 의미합니다 . 예를 들어, 아래와 같이 JVM을 시작하면 256MB의 메모리로 시작하여 프로세스가 최대 2048MB의 메모리를 사용할 수 있습니다.
java -Xms256m -Xmx2048m
메모리 플래그는 킬로바이트, 메가 바이트 등과 같은 다른 크기로 지정할 수도 있습니다.
-Xmx1024k
-Xmx512m
-Xmx8g
Xms
플래그는 기본값이 없으며, Xmx
일반적으로 2백56메가바이트의 기본 값을가집니다. 이 플래그의 일반적인 용도는을 만날 때 java.lang.OutOfMemoryError
입니다.
이러한 설정을 사용할 때 이러한 설정은 JVM의 힙에 대한 것이며 JVM은 힙 에 할당 된 크기보다 더 많은 메모리를 사용할 수 있습니다. 에서 오라클의 설명서 :
JVM은 힙보다 더 많은 메모리를 사용합니다. 예를 들어 Java 메소드, 스레드 스택 및 기본 핸들은 JVM 내부 데이터 구조뿐만 아니라 힙과 별도로 메모리에 할당됩니다.
답변
명령을 실행하면 java -X
모든 -X
옵션 목록이 표시됩니다 .
C:\Users\Admin>java -X
-Xmixed mixed mode execution (default)
-Xint interpreted mode execution only
-Xbootclasspath:<directories and zip/jar files separated by ;>
set search path for bootstrap classes and resources
-Xbootclasspath/a:<directories and zip/jar files separated by ;>
append to end of bootstrap class path
-Xbootclasspath/p:<directories and zip/jar files separated by ;>
prepend in front of bootstrap class path
-Xdiag show additional diagnostic messages
-Xnoclassgc disable class garbage collection
-Xincgc enable incremental garbage collection
-Xloggc:<file> log GC status to a file with time stamps
-Xbatch disable background compilation
-Xms<size> set initial Java heap size.........................
-Xmx<size> set maximum Java heap size.........................
-Xss<size> set java thread stack size
-Xprof output cpu profiling data
-Xfuture enable strictest checks, anticipating future default
-Xrs reduce use of OS signals by Java/VM (see documentation)
-Xcheck:jni perform additional checks for JNI functions
-Xshare:off do not attempt to use shared class data
-Xshare:auto use shared class data if possible (default)
-Xshare:on require using shared class data, otherwise fail.
-XshowSettings show all settings and continue
-XshowSettings:all show all settings and continue
-XshowSettings:vm show all vm related settings and continue
-XshowSettings:properties show all property settings and continue
-XshowSettings:locale show all locale related settings and continue
-X 옵션은 비표준이며 사전 통지없이 변경 될 수 있습니다.
나는 이것이 당신이 이해하는 데 도움이 될 수 있도록 Xms
, Xmx
가장 중요한 것은뿐만 아니라 많은 다른 것들. 🙂
답변
IDE에서 지정할 수 있습니다. 예를 들어, Eclipse의 구성 실행 → VM 인수에서 . 다음 -Xmx800m -Xms500m
과 같이 입력 할 수 있습니다
답변
질문 자체는 이미 위에서 언급되었습니다. 기본값의 일부만 추가하면됩니다.
당 http://docs.oracle.com/cd/E13150_01/jrockit_jvm/jrockit/jrdocs/refman/optionX.html
Xmx의 기본값은 시스템에서 사용 가능한 메모리 및 플랫폼에 따라 다릅니다.
답변
시작시 -Xms 초기 힙 크기이지만 작업 프로세스 중에 힙 크기는 사용자의 비 활동 또는 GC 반복으로 인해 -Xms 보다 작을 수 있습니다 . 최소 힙 크기는 아닙니다.
-Xmx 최대 힙 크기