Skip to content

Commit

Permalink
기본이 중요하다
Browse files Browse the repository at this point in the history
  • Loading branch information
K-Diger committed Jan 3, 2024
1 parent bceb9ec commit 6a2afc2
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 1 deletion.
16 changes: 15 additions & 1 deletion _posts/2022-10-10-JVM-Memory.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@ mermaid: true

Heap 영역은 조금 더 깊게 들어가면 다음 도식화 같이 구성되어있다.


### Heap - Young Generation (새로운 객체가 할당되는 공간)

- Young Generation은 새로운 객체들이 할당되는 영역이다.
Expand Down Expand Up @@ -78,15 +77,30 @@ Java 가 아닌 다른 언어(C, C++)로 작성된 Native Code 의 명령을 저
## JVM Memory 요약

### Method 영역 (공유 가능)

1. static 키워드로 선언된 요소들
2. 클래스 이름, 부모클래스, 클래스 메서드, 클래스 변수 등

### Heap (공유 가능)

1. 인스턴스
2. 인스턴스 변수

GC가 참조 되지 않은 메모리를 확인하고 제거하는 영역

### Thread (Stack) (공유 가능)

1. 메서드 내에서 사용되는 값들을 저장(매개변수, 메서드에서 선언한 변수, 리턴값 등)
2. 지역변수(메서드에 의한 변수)

---

## JVM 최소 힙 용량에서 최대 힙 용량까지

JVM은 최소 힙 용량과 최대 힙 용량을 가지고 있다. 그렇다면 최소 힙 용량으로 메모리 크기가 커버가 되지 않을 때 어떻게 용량을 늘리는걸까?

한 번에 최대 용량까지 늘리는걸까? 아니면 점진적으로 늘려가는 걸까? 그리고 이 과정에서 생기는 성능 이슈는 없을까?

힙 크기를 변경하는 작업은 JVM 내부에서 수행되며, 이 작업 도중에는 STW가 발생하게 된다.

힙 크기를 늘리면 그만큼 더 넓어진 메모리를 탐색해야하기 때문에 GC의 실행 시간도 증가할 수도 있다.
6 changes: 6 additions & 0 deletions _posts/2023-10-10-JVM-GC.md
Original file line number Diff line number Diff line change
Expand Up @@ -323,6 +323,12 @@ Parallel Collector에서 사용되는 병렬 압축은 Parallel Collector가 Maj

현재 LTS 17 버전의 기본 값으로 지정되어있다.

하드웨어가 발전되면서 Java 애플리케이션에 사용할 수 있는 메모리의 크기도 점차 켜저갔다.

큰 힙 메모리에서 짧은 GC 시간을 보장하는데 그 목적을 둔다.

JVM 힙은 2048개의 Region 으로 나뉠 수 있으며, 각 Region의 크기는 1MB ~ 32MB 사이로 지정될 수 있다. (-XX:G1HeapRegionSize 로 설정)

![](https://github.com/K-Diger/K-Diger.github.io/assets/60564431/335ee6c2-68de-4ea7-a808-1647b973220e)

G1은 동시 수집기이다. 동시 수집기는 애플리케이션에 대해 비용이 많이 드는 일부 작업을 동시에 수행한다. 이로 인해 높은 처리량을 달성할 수 있다.
Expand Down
1 change: 1 addition & 0 deletions _posts/2023-12-29-GoingToFlexibleArchitecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -286,3 +286,4 @@ class UserOrderRetrieveModel(
---

## 2. 도메인 중심 설계 (DDD)

0 comments on commit 6a2afc2

Please sign in to comment.