java memory 무한 증가.. 가비지 컬렉터 호출로 해결하기

App.java
1
2
3
4
5
6
7
8
pathname = null;
robot = null;
screencapture = null;
file = null;
str = null;
p = null;
d = null;
System.gc();
  • 내가 원할 때 가비지 컬렉터를 호출할 수 있다. System.gc();

상황

  • java.awt.Robot 으로 스크린샷을 찍고 이미지 파일로 저장하는 로직이 있었다
  • 이거를 runnable jar로 익스포트하고 실행해사 잘 사용하고 있었는데
  • 스크린샷을 찍는 함수가 실행될 때마다 메모리가 20mb 씩 증가했다…
  • 함수가 끝낼 때에 맞춰서 사용한 변수들을 전부다 null을 대입했는데도 해결되지 않았다

해결

  • 마지막에 가비지 컬렉션을 호출함으로써 메모리가 폭풍증가하지 않게되었다