Java 안팎의 호출 스택
HotSpot 전용 API를 이용해 스택을 수집하고 메모리 할당을 관측한다. Java 스레드 외에 가비지 수집과 JIT 컴파일러 등의 스레드도 살핀다. 응용의 Java 코드만으로는 드러나지 않는 네이티브 및 커널의 실행 맥락을 연결한다.
시간과 할당 및 잠금
CPU 시간과 Java 힙의 할당 및 네이티브 메모리 할당을 분석할 수 있다. 경합하는 잠금과 캐시 미스 및 페이지 폴트와 문맥 전환 같은 성능 카운터도 관측 범위에 포함한다. 조사 목적에 따라 프로파일할 사건을 선택한다.
실행 중 대상과 결과 탐색
실행 중인 Java 프로세스를 지정해 일정 시간 관측하고 결과를 저장할 수 있다. 브라우저에서 탐색할 수 있는 플레임 그래프 등으로 호출 경로의 비용을 조사한다. Linux와 macOS의 지원 아키텍처에 따라 실행하며 OpenJDK 등 HotSpot 기반 런타임이 주요 대상이다.
관련 문서
pprof / Speedscope / 플레임 그래프 / Java / 프로파일링 / 가비지 컬렉션