본문 바로가기

Spring & Java

Java OOM 발생 시퀀스

반응형

자바에서 힙 메모리에 객체를 할당할 때 메모리가 부족한 상황과 그에 따른 가비지 컬렉터의 역할을 UML 시퀀스 다이어그램을 통해 살펴보려고 합니다.

  1. Client가 객체를 생성하려고 JVM에게 요청합니다.
  2. JVM은 HeapMemory에서 충분한 메모리 공간이 있는지 확인합니다.
  3. 만약 메모리가 충분하지 않다면, JVM은 GarbageCollector를 호출하여 사용되지 않는 객체들을 제거하고 메모리를 회수하도록 합니다.
  4. 가비지 컬렉션 후, HeapMemory는 다시 메모리 상태를 확인합니다.
    4.1 만약 여전히 메모리가 충분하지 않다면, HeapMemory는 JVM에게 "Out of Memory Error"를 보냅니다. 이 상황에서 프로그램은 종료되거나 예외 처리를 통해 복구될 수 있습니다.
    4.2 만약 메모리가 충분해졌다면, HeapMemory는 JVM에게 메모리가 확보되었다고 알립니다.
  5. 충분한 메모리가 확보되면, JVM은 HeapMemory에 객체를 할당하고 초기화합니다.
  6. 마지막으로, 객체의 참조를 Client에게 반환합니다.

 

바의 가비지 컬렉션 메커니즘을 이해하는 것은 메모리 관리와 애플리케이션 성능 최적화에 매우 중요합니다

반응형