java 개발을 하며 프로젝트를 하는 중 성능 이슈가 생기는 경우가 있습니다.
프로젝트의 규모와 사용되는 비중을 생각한다면 성능 때문에 문제되는 경우가 꽤 있는 것 같습니다.
성능이 개선되려면 어떻게 애햐하는지 정말 모호하고 애매합니다.
- 성능이 어떻게 문제가 되는지 확인할 수 있어야 되며
- 성능을 개선하는데 어떤 작업이 필요한지 알아야합니다.
이는 일반적인 개발지식과 별개로 추가적인 성능 대응 기술이 필요한 것 같습니다.
이에 도움이 되는 도구들이 있는데, 도구들에 대해 정리해볼까 합니다.
jvmtop
jvm-tools
jstack
jcmd
jhsdb
OpenJDK tools
Conclusion
도구의 구분은
* JVM 진단 도구
- 실시간 진단 도구 (jvm-tools, jcmd, jhsdb)
- 사후 진단 도구(덤프를 떠서 분석,
스레드 덤프 : TDA, Thread Logic
힙 덤프 : Heap Analyzer, MAT
* 성능 진단 도구
- 운영도구 (scouter, pinpoint)
- 측정도구 (객체 레이아웃 jol, cpu 진단 jvmtop)
* 부하 도구
- 벤치마크 도구(성능 비교, jmh)
- 부하 테스트 도구(성능 측정위한 도구)
jmeter, gatling
- concurrent 부하 점검 : jcstress
참고 : https://www.slideshare.net/NHNFORWARD/2018-java-java
'IT기술 > JAVA' 카테고리의 다른 글
[JAVA] String의 빈값 구분하기 null check (0) | 2023.05.24 |
---|---|
[Java] String 자르기 substring (0) | 2023.05.23 |
[JAVA] 기본형(primitive type) - 실수형(float, double) (0) | 2023.05.17 |
[JAVA] JAVA에서 JSON 사용하기 - JSONObject, JSONArray (0) | 2023.05.09 |
[JAVA] 리스트 List ArrayList 사용 방법 (0) | 2023.05.08 |