프로파일링 툴 / APM 툴
프로파일링 툴
- 소스 레벨의 분석을 위함
- 애플리케이션의 세부 응답 시간까지 분석 가능
- 메모리 사용량을 객체나 클래스, 소스의 라인 단위까지 분석 가능
- 가격이 APM 툴에 비해 저렴
- 보통 사용자수 기반으로 가격이 정해짐
- 자바 기반의 클라이언트 프로그램 분석을 할 수 있음
응답시간 프로파일링 기능
- 하나의 클래스 내에서 사용되는 메서드 단위의 응답 시간 측정
메모리 프로파일링
- 잠깐 사용하고 GC의 대상이 되는 부분을 찾거나 메모리 부족 현상이 발생하는 부분을 찾기 위함
APM 툴
- 애플리케이션의 장애 상황에 대한 모니터링 및 문제점 진단이 주 목적
- 서버의 사용자 수나 리소스에 대한 모니터링이 가능
- 실시간 모니터링을 위한 툴
- 가격이 프로파일링 툴에 비해 비쌈
- 보통 CPU 수를 기반으로 가격이 정해짐
- 자바 기반의 클라이언트 프로그램 분석이 불가능
System
- static long currentTiemMillis() : 현재의 시간을 ms로 리턴(1/1000초)
- nanoTime() : 위 메서드보다 정확하고 권장하고 있음
JMH
- Java Microbenchmark Harness)
- JDK를 오픈 소스로 제공하는 OpenJDK에서 만든 성능 측정용 라이브러리
결론
- 프로파일링 툴이나 APM 툴은 프로젝트에서 적어도 하나 정도는 사용하는 것이 좋음
- 작은 것들이 쌓이면 1초, 10초, 100초가 된다는 점 잊지 말자
'개발서적 > 자바 성능 튜닝 이야기' 카테고리의 다른 글
[자성튜이] 로그 작성 (0) | 2024.09.16 |
---|---|
[자성튜이] IO 이야이야기 (0) | 2024.08.25 |
[자성튜이] static에 관하여 / reflection (0) | 2024.08.22 |
[자성튜이] String을 자제해라 / for문을 더 빠르게?? (0) | 2024.08.22 |
[자성튜이] J2EE 디자인 패턴 (0) | 2024.08.22 |