JVM 학습 - 1분대 개념
, 。
, 。
, 。
1. 왜 세대구분 개념이 있어야 하는지, 세대구분 없이 안 되는지
세대 구분 없이 충분히 가능하지만 세대 구분의 유일한 이유는 GC 성능을 최적화하기 위해서다.어떻게 최적화합니까?세대를 나누지 않으면 매번 GC는 쓰레기 대상을 찾기 위해 전체 더미를 한 번씩 쓸어야 한다. 너무 느리다.세대별 대상을 특정한 세대별 구역으로 직접 만들면 GC는 이 세대별 구역을 대상으로 최적화할 수 있고 힘들지 않다.
2. 젊은 세대
젊은 세대는 세 부분으로 나뉜다.
3. 대상이 겪는 과정:
4. 젊은 세대가 사용하는 GC 알고리즘
복제 알고리즘입니다.왜 복제 알고리즘을 선택합니까?젊은 세대의 80% 이상이 곧 죽기 때문이다.그래서 젊은 세대의 쓰레기 회수 알고리즘은 복제 알고리즘을 사용한다.즉, 메모리를 두 블록으로 나누어 한 번에 한 조각(Eden 및 From)을 사용하고, 한 조각을 다 사용하면 살아있는 대상을 다른 조각으로 복사하는 것이다.복제 알고리즘은 파편이 생기지 않는다.
5. From 및 to 영역 복제 프로세스
이전 섹션의 지침에 따라 복제 프로세스를 시연합니다.
From의 객체에는 두 가지 결과만 있습니다.
From에도 객체가 있는 이유는 GC가 처음 발생했을 때 To 영역으로 복사된 후 역할을 교환하기 때문입니다.
6. 젊은 세대 관련 JVM 매개 변수
-XX:NewSize -XX:MaxNewSize
는 젊은 세대의 크기를 설정하는 데 사용되며, 전체 무더기의 1/3 또는 1/4로 설정하고, 두 값은 똑같이 설정하는 것을 권장한다.-XX:SurvivorRatio
는 Eden과 그 중의 서바이보의 비율을 설정하는데 이 값도 비교적 중요하다.-XX:+PrintTenuringDistribution
이 매개 변수는 Minor GC가 있을 때마다 Survivor 구역의 각 연령대의 대상의 크기를 표시하는 데 사용됩니다.-XX:InitialTenuringThreshol
와 -XX:MaxTenuringThreshold
는 노년으로 진급한 대상의 연령의 최소치와 최대치를 설정하는데 사용되며, 대상마다 Minor GC를 한 번 견지한 후에 연령이 1을 더한다.이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.