[JAVA] 눈으로 보는 GC(feat.VisualVM)

무지성개발자·2023년 7월 31일
post-thumbnail

VisualVM

VisualVM은 명령줄 JDK 도구와 경량 프로파일링 기능을 통합하는 시각적 도구입니다.
개발 및 생산 시간 사용을 위해 설계되었습니다. -홈페이지 문구-

VisualVM은 간단하게 말해 JVM을 실시간으로 모니터링 할 수 있는 도구다.


GC 모니터링

  1. VisualVM을 다운 받아준다.
  2. bin/visualvm을 실행시킨다.
  3. GC가 이루어지는 걸 확인하기 위에서는 Tool-Plugins-Available Plugins-VisualGC를 Install한다.
  4. 코드 실행.
public class VMtest {
        public static void main(String[] args)throws Exception {
        List<Integer> li = IntStream.range(1, 100).boxed().collect(Collectors.toList());
        for (int i=1; true; i++) {
            if (i % 50 == 0) {
                li = new ArrayList<>();
                Thread.sleep(200);
            }
            IntStream.range(0, 100).forEach(li::add);
        }
    }
}
  1. 왼쪽 Applications탭을 보면 실행시킨 클래스가 있다. 더블 클릭.
  1. 오른쪽에 VisualGC탭에 가면 실시간으로 힙영역에 메모리가 쌓이고 GC가 되는 걸 확인 할 수 있다.

한 줄평 : 원래 java_home/bin/jvisualvm이 있었지만 java9부턴 없어졌다고 한다.

profile
no-intelli 개발자 입니다. 그래도 intellij는 씁니다.

1개의 댓글

comment-user-thumbnail
2023년 7월 31일

이런 유용한 정보를 나눠주셔서 감사합니다.

답글 달기