자바 어플리케이션 성능 향상 방법(쓰레드 배치 성능 향상)
자바 프로그램을 사용하다 보면 자바로 만든 어플리케이션이 뜻하지 않게 느려지는 경우가 발생한다.
특히 쓰레드를 여러 개 생성해 사용하는 배치 프로그램일 경우는 개별 쓰레드로 보면 느리지 않는데, 쓰레드가 몇 개 늘어나다 보면 더욱 더 느려지는 경우도 있다.
단일 쓰레드라면은 프로그램 사이사이에 시간을 로깅하여 이 것으로 성능 향상이 필요한 구간을 찾을 수 있지만 멀티 쓰레드 프로그램이라면은 찾기가 어려워 진다.
특히 단일 쓰레드에서는 빠른데, 멀티 쓰레드로 할 때만 급격히 느려진다면, 아래 사항을 확인해 보자.
.자바 어플리케이션 성능 향상 방법
글쓴이의 경우는 초기에 OS의 소켓 생성 갯수가 영향을 미칠 수 있나에 대해 의심하고 찾아보았으나, 큰 문제가 없었다.
그러다 GC를 확인해 보니, 특이한 점이 있었다.
중간 중간에 GC가 발생하는데, 생각 보다 많은 힙의 반환이 발생했다.
이를 토대로 자바 프로그램 안에서 꼭 클래스 변수로 실행될 필요가 없는 것들을 static으로 선언하였다.
특히 logger를 static으로 선언했을 때 속도가 빨라졌다.
private static Logger logger = Logger.getLogger(File.class);
'Java' 카테고리의 다른 글
자바 Enum 사용 이유 및 사용 방법 (0) | 2020.01.28 |
---|---|
이클립스 자바스크립트 인코딩 설정 (0) | 2017.07.29 |
mysql java text type 조회 (0) | 2016.06.18 |
No repository found at https://svn.codespot.com/a/eclipselabs.org/jsdt-jquery/updatesite (8) | 2016.06.05 |
원격 제어 프로그램 개발하기 (기본 1/4) (0) | 2016.06.05 |