Java virtual machine 메모리 설정 정보
Java lang OutOfMemoryError: Java 힙 공간
마지막으로 데이터를 검사하여 JVM 힙 메모리 부족으로 인한 것임을 알 수 있습니다. JVM 은 일반적으로 시작 시 JVM 힙 값을 설정합니다.
초기 공간 (Xms) 은 물리적 메모리/최대 공간 (Xmx) 으로 JVM 의 물리적 메모리를 초과할 수 없습니다. % 시간이 GC 에 걸리고 사용 가능한 힙 크기가% 미만이면 이 예외 메시지가 발생합니다. 이 문제는 JVM 힙 크기를 수정하여 해결할 수 있습니다.
예를 들면
축소하거나 열려면 (여기) 를 클릭합니다.
자바 xms mxmx mclass name
JVM 초기화 힙 메모리는 m 이상으로 설정되고 최대 사용 가능한 힙 메모리는 m 입니다.
() 명령줄에 설정된 방법은 위에서 설명한 바와 같습니다.
() Eclipse 에서 설정할 수 있습니다.
Eclipse 실행 > 구성 실행 > 의 매개 변수 아래 vmArguments 의 설정.
Xms M Xmx M
또한 Java X 를 사용하여 추가 JVM 매개 변수를 볼 수 있습니다.
축소하거나 열려면 (여기) 를 클릭합니다.
D: \ work > 자바 x
X 혼합 모드 실행 (기본값)
해석 모드 실행만
Xbootclasspath:& lt;; 디렉토리 및 zip/jar 파일; & gt
부트 클래스 및 리소스에 대한 검색 경로 설정
Xbootclasspath/a: < 디렉토리 및 zip/jar 파일; & gt
부트 클래스 경로의 끝에 추가
Xbootclasspath/p: < 디렉토리 및 zip/jar 파일; & gt
부트 클래스 경로 앞에 접두사를 추가합니다
Xnoclassgc 는 클래스 가비지 수집을 비활성화합니다
Xincgc 는 증분 가비지 수집을 활성화합니다
Xloggc:& lt;; 파일> 는 타임 스탬프가 있는 파일에 GC 상태를 기록합니다
Xbatch 는 배경 채우기를 비활성화합니다
Xms & ltsize & gt 초기 Java 힙 크기를 설정합니다
Xmx & ltsize & gt 최대 Java 힙 크기를 설정합니다
Xss & ltsize & gt Java 스레드 스택 크기 설정
Xprof 출력 CPU 분석 데이터
Xfuture 는 미래의 위약을 예측하는 가장 엄격한 검사를 가능하게 한다.
Xrs 는 OS 신호에 대한 Java/VM 사용을 줄입니다 (문서 참조)
Xcheck:jni 는 JNI 함수에 대해 추가 검사를 수행합니다
Xshare:off 공유 클래스 데이터 사용을 시도하지 마십시오
Xshare: 가능한 경우 공유 클래스 데이터 자동 사용 (기본값)
Xshare:on 에는 공유 클래스 데이터가 필요합니다. 그렇지 않으면 실패합니다
X 옵션은 비표준 옵션이며 사전 통보 없이 변경될 수 있습니다
Java lang Runtime 의 몇 가지 방법을 통해 JVM 의 메모리 사용량을 확인할 수 있습니다.
축소하거나 열려면 (여기) 를 클릭합니다.
시스템 출력 println (총 메모리:+runtimegetruntime () totalmemory ()/(*+MB)
시스템 출력 println (사용 가능한 메모리:+runtimegetruntime () freememory ()/(*)+MB)
시스템 출력 println (최대 메모리:+runtimegetruntime () maxmemory ()/(*)+MB)
MaxMemory () 메서드는 Java virtual machine (프로세스) 이 운영 체제에서 얻을 수 있는 최대 메모리 (바이트) 를 반환합니다.
TotalMemory () 메서드는 Java virtual machine 이 현재 운영 체제에서 파낸 메모리 크기, 즉 당시 Java virtual machine 이 사용하는 모든 메모리를 반환합니다.
FreeMemory 는 현재 JVM 에서 사용되지 않는 메모리입니다.
Jvm 매개 변수 설명 포함 (시작)
서버: 여러 CPU 에서 좋은 성능을 얻으려면 첫 번째 매개 변수로 사용해야 합니다.
기본적으로 Xms Java 힙의 초기 크기는/
Xmx Java 힙의 최대값은 물리적 메모리의 절반으로 설정하는 것이 좋으며 물리적 메모리를 초과할 수 없습니다.
XX:PermSize: 메모리 영구 저장소의 초기 크기를 설정합니다. 기본값은 m 입니다 (visualvm exe 로 확인).
XX:MaxPermSize: 메모리 영구 저장소의 최대 크기를 설정합니다. 기본값은 m 입니다 (visualvm exe 로 확인).
XX:SurvivorRatio=? 생존자 풀의 기본 크기는 가비지 수집이 병목 현상이 될 경우 생성 풀 설정을 사용자 정의할 수 있다는 것입니다.
XX:NewSize: 새로 생성된 풀의 초기 크기 기본값은 m 입니다.
XX:MaxNewSize: 새로 생성된 풀의 최대 크기 기본값은 m 입니다.
JVM 의 힙 크기가 GB 보다 큰 경우 xx: newsize = mxx: maxnewsize = mxx: survivorratio = 값을 사용하거나 총 힙 크기의% ~% 를 새로 생성된 풀에 할당하여 새 오브젝트 영역을 조정해야 합니다
+XX:AggressiveHeap 는 Xms 의 의미를 잃게 합니다. 이 매개 변수를 사용하면 JVM 이 Xmx 매개 변수를 무시하고 G 물리적 메모리를 미친 듯이 먹은 다음 G 교환을 할 수 있습니다.
각 스레드의 Xss 스택 크기 Xss 를 사용하면 JBoss 가 스레드를 추가할 때마다 M 메모리를 즉시 사용할 수 있습니다. 최적 값은 K 이고 기본값은 K 인 것 같습니다.
Verbose:gc 실제 가비지 수집 정보
Xloggc:gc log 불필요한 정보 수집 로그 파일을 지정합니다.
Xmn 젊은 세대의 힙 크기는 일반적으로 Xmx 의 3 분의 1 로 설정됩니다.
XX:+UseParNewGC 는 minor 수집 시간을 단축합니다.
XX:+UseConcMarkSweepGC 는 전문적인 수집 시간을 단축합니다. 이 옵션은 힙 크기가 크고 major 의 수집 시간이 긴 경우에 더 적합합니다.
XX:userParNewGC 는 여러 CPU 의 병렬 컬렉션을 설정하는 데 사용할 수 있습니다.
Xx: 병렬 처리 기능을 사용하여 병렬 처리 수를 늘릴 수 있습니다. 멀티 CPU.
Lishi Xinzhi/article/program/Java/hx/201311/26/