inflearn logo
강의

Course

Instructor

Solid Foundation! Java Starting Strongly - Part 2: OOP and JVM

Generational Collection Theory

21분 경 Old generation의 GC 설명 질문입니다.

Resolved

102

gkrbdud13888379

2 asked

0

21분 경에 Old Generation을 설명하시면서 Full GC를 언급하셨는데, 해당 시점에는 Major GC가 발생해서 개체를 회수하게 되고 Major GC로 부터 살아남은 개체가 Metaspace 영역으로 옮겨지는 것 아닌가요??

물론 Full GC를 통해서도 Old Generation의 개체가 회수되기는 하겠지만 해당 부분 설명에선 Major GC로 언급하는 것이 그림과 일치하지 않나해서 질문드립니다

java 객체지향 jvm data-structure

Answer 3

0

nullnull8537

엄밀이 말하자면 Major GC라고 하는 것이 맞을 수는 있겠습니다. 그러나 맥락상 Full GC라 하더라도 큰 문제는 없지 않나 생각합니다. AI 답변과 더불어 참고하시기 바랍니다. 😄

0

gkrbdud13888379

아 Major GC로부터 살아남는다고 Metaspace 영역으로 옮겨지지 않는 부분은 AI 답변으로 이해했습니다 ㅎㅎ

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. 하규영님, 기초 탄탄! 독하게 시작하는 Java - Part 2 : OOP와 JVM 강의에서 Old Generation과 GC에 대해 질문 주셔서 감사합니다.

먼저, JVM에서의 Garbage Collection에 대해 개념을 정리하겠습니다.

  1. Major GC와 Full GC의 차이:

    • Major GC는 주로 Old Generation에서 객체를 회수하는 역할을 합니다. Major GC가 실행되면 Old Generation에 있는 불필요한 메모리를 회수합니다.
    • Full GC는 Heap 전체를 대상으로 수행되며, 모든 영역(Eden, Survivor, Old Generation)에서 불필요한 객체를 회수합니다. 따라서 Full GC는 수행 시간이 상대적으로 길며, 애플리케이션의 성능에 부정적인 영향을 미칠 수 있습니다.
  2. Metaspace의 역할:

    • Metaspace는 자바 8부터 Permanent Generation(PermGen)을 대체한 네이티브 메모리 영역입니다. 이 영역은 클래스 메타데이터를 저장합니다.
    • Major GC에서 살아남은 객체는 Old Generation에 남아 있으며, Metaspace로 이동하지 않습니다. Metaspace는 클래스 수준의 메타정보를 저장하기 때문에 객체의 이동과는 무관합니다.

하규영님께서 언급해 주신 부분에서, 강의의 설명이 혼란을 줄 수 있었다면, 해당 내용은 Major GC가 Old Generation을 대상로 한다는 점에 주의하여 들어주시면 좋겠습니다. Metaspace는 Heap 외부의 영역으로, Heap 내에서 객체 이동과는 다르게 관리됩니다.

아래 링크에서는 JVM의 GC 메커니즘과 관련된 더 많은 정보를 얻으실 수 있습니다:

저는 질문자님의 이해를 돕고자 유사한 답변 링크를 추천해드렸습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

compareTo를 사용하는 이유가 뭔가요?

0

46

1

[실습] MyString에 복사 생성자 추가

0

38

1

안녕하세요~ 회수라는 의미에 대해서 질문합니다.

0

71

1

equals의 재정의(overriding)에 대해서

0

81

2

TestEx 객체 생성 시 생성자 호출 질문

0

62

2

[MyString 실습 인스턴스 중복 생성 문의] MyString.setString(String param)

0

100

2

주소록 실습 3단계에서 막혔어서 조언을 구하려고 질문 드립니다.

0

85

2

해시 알고리즘 관련으로 질문이 있습니다.

0

74

2

임시 객체의 첫 번째 상황에 대한 질문

0

70

2

String 객체가 하나 더 생성되는 이유가 궁금합니다

0

190

3

하위 클래스와 상위 클래스의 생성자 순서

0

105

2

GC의 age와 관련하여 질문 있습니다.

0

97

2

Object Header 의 Klass word (39강 36:00)

0

115

2

method area는 이름이 class area가 아니고 왜 method aread인지 궁금합니다.

0

139

2

교안 p.305 'throw 필수' 질문

0

81

1

Metaspace에 대한 질문

0

259

2

clone() 메서드를 재정의함으로써 Deep copy로 구현한다로 이해하면 될까요?

0

120

2

MyListEx 질문드립니다.

1

136

1

part3 강의 개강

0

197

2

문자열 비교 강좌에서 문자열 선언 방법 간에 hashCode() 값 관련한 질문입니다.

0

222

2

상속과 오지랖의 콜라보 예제에서 clone() 메서드에 대한 문의드립니다.

1

182

2

보이지 않는 임시 객체의 자막 수정 요청

0

116

2

스레드 관련해서 질문이 있습니다.

0

203

1

metaspace 관련 문의드립니다.

0

199

2