GC

배경 내가 운영하고 있는 서비스가 실서버에 배포 및 운영을 하는 상태인데, 회사 내부 상품 정보를 많이 가져오면서도 처리속도를 빠르게 하기 위해 API 내부에는 ExecutorService 라는 객체를 쓰면서 멀티쓰레드를 활용해 여러번 API 호출하는 부분이 있었는데, 그걸로 인해 힙 메모리가 일정비율로 채워졌음에도 불구하고 GC가 제대로 일어나지 않은 것처럼 보이고 힙 메모리 사용량 70% 이상임에도 계속 늘어나는 메모리 누수가 일어나는 현상이 일어나고 있었다. 현재 다른 서비스 개발에 집중을 하고 있어서 왜 그런지에 대해서 명확히 찾지를 못했채, 힙 메모리 사용량 일정 비율에 의해 모니터링 알람 울리면 강제로 GC 명령어를 입력해서 임시방편으로 대응하고 있다. 원인 파악 내가 생각한 메모리 누수 원인..
· Java
1. 서론 가비지 컬렉션(GC)은 프로그램에서 사용하지 않는 메모리를 자동으로 회수하는 기능입니다. 메모리 관리를 단순화하고 메모리 누수를 방지하는 역할을 하는 GC는 프로그래머의 부담을 줄여주는 중요한 기능입니다. 이 글에서는 가비지 컬렉션의 원리와 종류, 장단점에 대해 알아보겠습니다. 2. 가비지 컬렉션의 원리 GC의 기본 원리는 프로그램에서 사용되지 않는 메모리를 식별하고, 해당 메모리를 해제하는 것입니다. 이를 위해 GC 알고리즘은 메모리 사용 패턴을 추적하고, 더 이상 사용되지 않는 객체를 찾아내어 메모리를 회수합니다. 대표적인 GC 알고리즘으로는 참조 카운팅(Reference Counting), 표시-정리(Mark and Sweep), 카피(Copying), 그리고 세대별 수집(Generati..
개발만파볼까
'GC' 태그의 글 목록