| 매개변수 이름 | 의미 | 기본값/노트 |
| -Xms | 초기 힙 크기 | 1/64(<1GB) 물리 메모리 기본값으로(MinHeapFreeRatio 매개변수 조정 가능) 자유 힙 메모리가 40% 미만일 때 JVM은 최대 한계인 -Xmx까지 힙을 늘립니다 |
| -Xmx | 최대 힙 크기 | 물리 메모리의 1/4(<1GB) 기본값(MaxHeapFreeRatio 매개변수 조정 가능) 자유 힙 메모리가 70%를 초과하면 JVM은 -xms 최소 한계까지 힙을 줄입니다 |
| -엑스므 | 세대 크기 (JDK 1.4 이상) | 신세대가 증가하면 기존 세대의 규모가 줄어듭니다. 이 값은 시스템 성능에 상당한 영향을 미칩니다. Sun은 전체 스택의 3/8에 이 구성을 공식적으로 권장합니다 |
| -XSS | 각 스레드의 스택 크기 | JDK5.0 이후에는 각 스레드 스택 크기가 1M이었고, 이전에는 각 스레드 스택 크기가 256K였으며, 이는 K, M 또는 G 단위로 나눌 수 있습니다 |
| -XX:스레드 스택 크기 | 같은 책 | 0은 기본 값이 사용되었음을 의미하며, 이를 결합할 수 없음을 의미합니다 |
| -XX:퍼름사이즈 | 영구 대수 초기 값을 설정하세요 | 물리적 메모리의 1/64 |
| -XX:최대 퍼름사이즈 | 영구 생성 최대 값을 설정하세요 | 물리적 메모리의 1/4 |
| -XX:뉴레이션 | 신생대(에덴과 두 개의 생존자 구역 포함)와 노년(영구 세대 제외) 비율 | -XX:NewRatio=4는 신생대와 구시대의 비율이 1:4이며, 신생대가 전체 스택의 1/5를 차지함을 의미한다. Xms=Xmx, Xmn이 설정되어 있으므로 이 매개변수는 설정할 필요가 없다. |
| -XX:생존자 비율 | 에덴 구역과 생존자 구역의 크기 비율 | 8로 설정하면 두 생존자 지역과 에덴 지역 1의 비율은 2:8이며, 생존자 지역 하나가 신생대 전체의 1/10을 차지합니다 |
| -XX:LargePageSizeInBytes | 메모리 페이지 크기를 너무 크게 설정하면 Perm 크기가 달라집니다 | =128m |
| -XX:+UseFastAccessorMethods | 원래 유형의 빠른 최적화 | / |
| -XX:+DisableExplicitGC | Close System.gc() | 이 매개변수는 엄격한 테스트가 필요합니다 |
| -XX:최대 임시 임계치 | 쓰레기 최대 사용 가능 시간 | 0으로 설정하면 새 세대 객체는 생존자 영역을 거치지 않고 바로 구시대로 진입합니다. 오래된 응용 분야에서는 효율성을 향상시킬 수 있습니다. 이 값이 크게 설정되면 새 세대 객체가 생존자 영역에서 여러 번 복제되어, 새 세대에서 객체의 생존 시간이 증가하고 재순환 확률이 높아지는데, 이는 직렬 GC에만 유효합니다 |
| -XX:+공격적 옵츠 | 스피킹업 컴파일 | / |
| -XX:+UseBiasedLocking | 잠금 메커니즘의 성능 향상 | / |
| -Xnoclassgc | 쓰레기 재활용 비활성화 | / |
| -XX:SoftRefLRUPolicyMSPerMB | 메가파일의 자유 공간당 SoftReference의 생존 시간 | 1 |
| -XX: 임시 보유 규모 임계값 | 물건의 크기는 노년에 직접 분배됩니다 | 새로운 세대가 Parallel Scavenge GC를 사용하는 또 다른 경우는 유효하지 않으며, 구세대에 직접 할당된 경우는 외부 참조 객체가 없는 큰 배열 객체입니다. |
| -XX:TLAB와스트 목표 비율 | 에덴 지역 TLAB 비율 | 1% |
| -XX:+CollectGen0First | FullGC가 될 때 YGC가 우선인지? | false |
| -XX:+UseParallelGC | 풀 GC는 병렬 MSC를 사용합니다 | [GC 매개변수] 참조[1] |
| -XX:+UseParNewGC | 새로운 세대가 병행하여 수집하도록 설정하기 | CMS 컬렉션, JDK 5.0 또는 그 이후 버전과 함께 사용할 수 있으며, JVM이 시스템 구성에 따라 값을 설정하므로 이 값을 다시 설정할 필요가 없습니다 |
| -XX:평행 GCThreads | 병렬 집강기의 나사 수 | 이 값은 프로세서 수만큼 구성하는 것이 가장 좋으며, CMS에도 적합합니다 |
| -XX:+UseParallelOldGC | 기존의 가비지 컬렉션 방법은 병렬 컴팩트(Parallel Compacting)입니다 | 이것이 JAVA 6에 나타나는 매개변수 옵션입니다 |
| -XX:맥스 GCPauseMillis | 신규 세대 폐기물 수거당 최대 시간 (최대 일시 정지 시간) | 이 시간을 충족하지 못하면 JVM은 자동으로 새 세대의 크기를 조정하여 이 값을 충족시킵니다. |
| -XX:+UseAdaptiveSizePolicy | 자동으로 새로운 발전 구역의 크기와 생존자 구역의 비율을 선택하세요 | 이 옵션이 설정되면 병렬 컬렉터는 자동으로 새로운 발전 영역의 크기와 생존자 영역의 비율을 선택하여 목표 시스템에서 지정한 최소 대응 시간 또는 수집 주파수를 달성합니다 |
| -XX:GCTimeRatio | 가비지 수거 시간을 프로그램 실행 시간의 백분율로 설정하세요 | 공식은 1/(1+n)입니다. |
| -XX:+ScavengeBeforeFullGC | YGC에 전화하기 전에 전체 GC를 확인하세요 | true |
| -XX:+UseConcMarkSweepGC | CMS 메모리 수집 사용 | 테스트에서 이를 구성한 후 -XX:NewRatio=4 구성은 유효하지 않아 원인도 알 수 없으므로, 이 시점에서 새 세대의 크기를 설정하기 위해 -Xmn을 사용하는 것이 가장 좋습니다 |
| -XX:+AggressiveHeap | 이 시도는 많은 물리적 메모리를 사용하는 것입니다 | 장기 대용량 메모리 사용량 최적화, 메모리 및 프로세서 수, 최소 256MB 메모리가 필요한 컴퓨팅 자원 확인 |
| -XX:CMS 압축 전의 두꺼운 GCs | 기억 압축은 몇 번이나 일어나나요? | 동시 컬렉터가 메모리 공간을 압축하거나 조직하지 않기 때문에, 일정 시간 실행 후 '단편화'가 발생하여 운영 효율이 저하됩니다 |
| -XX:+CMSParallelRemarkEnabled | 낮은 마커 정지 | / |
| -XX+UseCMSCompactAtFullCollection(최대 컬렉션) | FullGC였던 시절의 압축 | CMS는 메모리를 이동하지 않기 때문에 매우 쉽게 단편화가 발생하여 메모리 부족이 발생하므로 이 시점에서 메모리 압축이 활성화됩니다. 이 수치를 높이는 것은 좋은 습관입니다. 성능에는 영향을 줄 수 있지만, 이물질을 제거할 수 있습니다 |
| -XX:+CMS사용 점유만 활용 | 수동 정의 초기화로 CMS 수집 시작 | HostSpot은 단독으로 CMS GC를 트리거하는 것이 금지되어 있습니다 |
| -XX:CMS점유분수=70 | CMS 수거는 쓰레기의 70%가 재활용에 사용된 후 시작됩니다 | 이 값은 다음 공식인 CMSInitiatingOccupancyFraction을 충족하도록 설정해야 합니다 |
| - XX:CMS:PermOccupancyFraction | Perm Gen 사용이 그 비율에 도달했을 때 트리거되도록 설정하세요 | 92 |
| -XX:+CMSIncrementalMode | 점진적 모드로 설정됨 | 단일 CPU 케이스에서 사용 |
| -XX:+CMSClassUnloadingEnabled | 영구 CMS GC | / |
| -XX:+PrintGC | GC 로그 출력 | -verbose:gc와 동일합니다 |
| -XX:+PrintGCDetails | 같은 책 | 자세한 내용 |
| -XX:+PrintGCTimeStamps | 출력 GC 타임스탬프 | 위의 PrintGC 파라미터와 함께 사용하거나, -XX:+PrintGC:PrintGCTimeStamps 같은 것을 작성하세요 |
| -XX:+PrintGC:PrintGCTimeStamps | / | -XX:+PrintGC -XX:+PrintGCDetails와 혼합할 수 있습니다 |
| -XX:+프린트GCA요청시간 멈춤 | 프린트 가비지 컬렉션 중에 프로그램이 일시정지되는 시간입니다. 위 내용과 섞어도 됩니다 | 출력 형식: 애플리케이션 스레드가 중단된 총 시간: 0.0468229초 |
| -XX:+PrintGCApplicationConcurrentTime | 각 가비지 컬렉션 전에 프로그램의 중단 없는 실행 시간을 출력하세요 | 위 것과 혼합할 수 있으며, 출력 형태: 적용 시간: 0.5291524초 |
| -XX:+PrintHeapAtGC | GC 전후에 상세한 스택 정보를 출력하세요 | / |
| -Xloggc:파일이름 | 관련 로그 정보를 분석용 파일에 기록하세요 | 위 몇 가지와 함께 작동합니다 |
| -XX:+PrintClassHistogram | 콘솔에서 Ctrl+Break를 누른 후 클래스 정보를 출력하세요 | / |
| -XX:+PrintClassHistogramBeforeFullGC | 인쇄 전 풀GC | / |
| -XX:+PrintTLAB | TLAB 공간의 사용 현황 보기 | / |
| XX:+PrintTenuringDistribution | 각 경미한 GC 이후 새로운 생존 기간의 임계값을 확인하세요 | / |
| -EA | assert assert 켜기 | / |
| -엑스프로프 | 성능 진단 | / |
| -엑스룬프로프 | 성능 진단 | / |
| -XX:+TraceClassLoading | 클래스 로딩 과정에 관한 정보를 인쇄합니다 | [Loaded java.util.AbstractList$Itr from /Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/contents/Home/jre/lib/rt.jar] |
| -XX:+TraceClassUnloading | 인쇄 클래스 삭제 프로세스 정보 | / |
| Xbootclasspath | 검사가 필요 없는 클래스의 로드를 명시합니다. | 필요한 사전 점검을 건너뛰면 적재 시간을 줄일 수 있지만 안전하지는 않습니다 |
| -XX:+PrintCompilation | 핫스팟이 JIT로 컴파일하는 메서드 이름을 출력하세요 | / |
| -XX:+HeapDumpOnOutMemoryError | 힙덤프를 생성할 때 OM | 기본 출력은 클래스 파일이 저장된 루트 폴더에 있습니다 |
| -XX:힙덤프 경로 | 출력 OM 덤프 파일 경로를 설정하세요 | -XX:+HeapDumpOnOutOfMemoryError와 함께 사용 |
| 매개변수 이름 | 묘사 | 기본값 |
| -d32 | 32비트 데이터 모델(가능한 경우) 사용하세요 | / |
| -D64 | 64비트 데이터 모델(가능한 경우) 사용하세요 | / |
| -서버 | 서버 VM 선택하세요 | 기본 VM은 서버입니다. 왜냐하면 서버와 유사한 컴퓨터에서 실행되기 때문입니다. |
| -cp < 디렉터리와 zip/jar 파일 클래스 검색 경로 > | / | / |
| -classpath< 디렉터리와 zip/jar 파일의 클래스 검색 경로입니다 > | 분리된 디렉터리, JAR 아카이브, ZIP 아카이브 목록을 사용하여 클래스 파일을 검색하세요 | / |
| -D<名称>=<值> | 시스템 속성 집합 | / |
| -장황하게: [수업 또는 GC, JNI] | 상세 출력 활성화 | / |
| -버전 | 제품 버전을 출력하고 종료하세요 | / |
| -<值>버전: | / | 폐기됨 |
| -쇼 버전 | 제품 버전을 출력하고 계속 진행하세요 | / |
| -jre-restrict-search 또는 -no-jre-restrict-search | / | 폐기됨 |
| -? -도움말 | 이 도움말 메시지 출력하세요 | / |
| -X | 비표준 옵션에 대한 출력 도움말 | / |
| -EA[:< 패키지명, 클래스명>] | 주장 | / |
| -enableassertions[:< 패키지명, 클래스명>] | 지정된 세분화에서 주장을 활성화합니다 | / |
| -da[:< 패키지 이름, 클래스명>] | / | / |
| -disableassertions[:< 패키지 이름, 클래스 이름>] | 지정된 세분성을 가진 주장을 비활성화합니다 | / |
| -esa 또는 -enablesystemassertions | 시스템 어설션 활성화 | / |
| -DSA 또는 -비활성화 시스템 주장 | 시스템 어설션 비활성화 | / |
| -agentlib:<libname>[=<选项>] | 네이티브 에이전트 라이브러리<libname>를 로드하세요 | 예를 들어, -agentlib:hprof도 참조하세요 -agentlib:jdwp=help, -agentlib:hprof=help |
| -agentpath:<pathname>[=<选项>] | 로컬 에이전트 라이브러리를 전체 경로명으로 불러오세요 | / |
| -Javaagent:<jarpath>[=<选项>] | Java 프로그래밍 언어 에이전트를 불러오려면 java.lang.instrument를 참조하세요. | / |
| -첨벙:<imagepath> | 지정된 이미지가 있는 스플래시 화면을 표시하세요 | / |