>  기사  >  Java  >  Java Virtual Machine Learning - 객체 메모리 할당 및 재활용

Java Virtual Machine Learning - 객체 메모리 할당 및 재활용

黄舟
黄舟원래의
2017-03-18 17:51:501603검색

Eden에서 객체가 먼저 할당됩니다

대부분의 경우 신세대 Eden 영역에서 객체가 먼저 할당됩니다. Eden 메모리 영역에 할당할 공간이 충분하지 않으면 가상 머신은 Minor GC(New Generation GC)를 트리거합니다. Minor GC 동안 가상 머신은 Eden 영역의 개체를 Survivor 영역 중 하나로 이동합니다.



대형 물체가 노년기에 직접 들어갑니다

소위 대형 개체는 많은 양의 연속 공간이 필요한 개체를 나타냅니다. 가상 머신은 XX:PretenureSizeThreshold 매개변수를 제공하므로 이 값보다 큰 개체는 이전 세대에서 직접 할당됩니다.

오랜 기간 살아남은 개체는 Old Generation으로 들어갑니다

가상 머신은 메모리를 재활용할 때 세대별 수집 개념을 사용하여 이를 식별할 수 있어야 합니다. 어떤 객체를 신세대에 배치해야 하는지, 어떤 객체를 신세대에 배치해야 하는지. 이를 달성하기 위해 가상 머신은 각 개체에 대한 개체 수명을 정의합니다. 새 세대 GC 이후에도 개체의 수명은 1년씩 늘어납니다. Old Generation으로 승격되는 객체의 연령 제한은 -XX:MaxTenuringThreshold로 설정할 수 있습니다.

Minor GC와 Full GC의 차이점

신세대 GC(Minor GC): 신세대에서 발생하는 가비지 수집 작업을 말합니다. 대부분의 객체가 임시적이기 때문에 Minor GC는 매우 자주 발생하며 회복 속도도 상대적으로 빠릅니다.

Old Generation GC(Major GC/Full GC): Old Generation에서 발생하는 GC를 의미하며, Major GC 발생 후 적어도 한 번 이상 Minor GC가 동반되는 경우가 많습니다. Major GC의 속도는 일반적으로 Minor GC보다 10배 이상 느립니다.

위 내용은 Java 가상 머신러닝 - 객체 메모리 할당 및 재활용 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!

관련기사 :

Java Virtual Machine에 대한 자세한 설명

Java Virtual Machine에 대한 심층적인 이해

Java Virtual Machine Learning - 클래스 로딩 메커니즘

Java Virtual Machine Learning - 객체 액세스

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.