Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions content/posts/jvm-memory-diagnosis-tuning.md
Original file line number Diff line number Diff line change
Expand Up @@ -293,7 +293,7 @@ jmap -dump:live,format=b,file=/tmp/heap.hprof <PID>
MAT이 휴리스틱으로 "이 객체가 의심됩니다"를 1차 제안하는 리포트로, 대부분의 명백한 누수는 여기서 바로 드러납니다.
다만 자동 리포트가 늘 정확한 것은 아니므로, **Dominator Tree**와 **Path to GC Roots**를 직접 읽을 줄 알아야 합니다.

#### Shallow Size vs Retained Size
### Shallow Size vs Retained Size

MAT을 제대로 읽으려면 두 가지 크기 개념을 먼저 이해해야 합니다.

Expand All @@ -316,7 +316,7 @@ MAT을 제대로 읽으려면 두 가지 크기 개념을 먼저 이해해야
`HashMap` 인스턴스 자체는 수십 바이트에 불과하지만, 그 안에 1GB짜리 `byte[]`를 담고 있다면 진짜 범인은 이 `HashMap`입니다.
항상 **Retained Size 내림차순으로 정렬**해야 진짜 메모리를 붙잡고 있는 객체를 찾을 수 있습니다.

#### Dominator Tree — 진짜 범인 찾기
### Dominator Tree — 진짜 범인 찾기

<Term id="dominator-tree">Dominator Tree</Term>는 MAT의 가장 중요한 뷰입니다.
일반 참조 그래프는 한 객체가 여러 부모를 가질 수 있어 복잡하지만, Dominator Tree는 **객체마다 단일 부모(dominator)로 단순화**되어 "누가 단독으로 이 메모리를 붙잡고 있는가"를 한눈에 보여줍니다.
Expand All @@ -343,7 +343,7 @@ MAT을 제대로 읽으려면 두 가지 크기 개념을 먼저 이해해야
4. 비정상적으로 큰 Retained Size를 가진 노드가 누수의 중심지
</div>

#### Path to GC Roots — 누수 경로 역추적
### Path to GC Roots — 누수 경로 역추적

Dominator Tree로 **"무엇이 많이 붙잡고 있는가"** 를 찾았다면, 다음은 **"왜 GC되지 않는가"** 를 확인할 차례입니다.
의심 객체에서 시작해 거꾸로 <Term id="gc-roots">GC Root</Term>까지 거슬러 올라가는 경로를 찾는 기능이 **Path to GC Roots**입니다.
Expand Down
480 changes: 480 additions & 0 deletions content/posts/realtime-communication-polling-sse-websocket.md

Large diffs are not rendered by default.

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 3 additions & 1 deletion src/lib/thumbnail-blur-data.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,7 @@
"/images/thumbnails/read-write-performance-dark.png": "data:image/webp;base64,UklGRjwAAABXRUJQVlA4IDAAAADwAgCdASoUAA0APzmGulOvKKWkMAgB4CcJYwCdAC0kAAD+7hsDmmA2xv+eHAzgAAA=",
"/images/thumbnails/read-write-performance-light.png": "data:image/webp;base64,UklGRjoAAABXRUJQVlA4IC4AAADwAgCdASoUAA0APzmGuVQvKSWssAgB4CcJZQDCgC5JAAD+7T7KWvLaG9LAMAAA",
"/images/thumbnails/latency-dark.png": "data:image/webp;base64,UklGRjgAAABXRUJQVlA4ICwAAACwAgCdASoUAA0APzmGuVOvKSWisAgB4CcJZQAAeyAA/u56+zJ3cUnhAxIQAA==",
"/images/thumbnails/latency-light.png": "data:image/webp;base64,UklGRjYAAABXRUJQVlA4ICoAAADQAgCdASoUAA0APzmGulQvKSWjMAgB4CcJZwAAe/QAAP7uJvd6mrAAAAA="
"/images/thumbnails/latency-light.png": "data:image/webp;base64,UklGRjYAAABXRUJQVlA4ICoAAADQAgCdASoUAA0APzmGulQvKSWjMAgB4CcJZwAAe/QAAP7uJvd6mrAAAAA=",
"/images/thumbnails/realtime-communication-dark.png": "data:image/webp;base64,UklGRjoAAABXRUJQVlA4IC4AAADwAgCdASoUAA0APzmGuVOvKSWisAgB4CcJZQCdAC0kAAD+7qjtGwwGk7ZtmAAA",
"/images/thumbnails/realtime-communication-light.png": "data:image/webp;base64,UklGRjYAAABXRUJQVlA4ICoAAADwAgCdASoUAA0APzmGulQvKSWjMAgB4CcJaQDMHC1yAAD+7orbhGkQAAA="
}
Loading