위키득계정 ↗
기술

async-profiler

async-profiler기술
주요 대상
HotSpot 기반 Java 실행 환경
분석 방식
스택 표본 수집
관측 범위
Java와 네이티브 및 커널 프레임
대표 출력
대화형 플레임 그래프
async-profiler는 HotSpot 기반 Java 실행 환경의 표본을 수집하는 프로파일러다. Java 호출뿐 아니라 네이티브와 커널 프레임 및 가비지 수집 같은 내부 스레드도 관측해 여러 실행 비용을 함께 조사한다.

Java 안팎의 호출 스택

HotSpot 전용 API를 이용해 스택을 수집하고 메모리 할당을 관측한다. Java 스레드 외에 가비지 수집과 JIT 컴파일러 등의 스레드도 살핀다. 응용의 Java 코드만으로는 드러나지 않는 네이티브 및 커널의 실행 맥락을 연결한다.

시간과 할당 및 잠금

CPU 시간과 Java 힙의 할당 및 네이티브 메모리 할당을 분석할 수 있다. 경합하는 잠금과 캐시 미스 및 페이지 폴트와 문맥 전환 같은 성능 카운터도 관측 범위에 포함한다. 조사 목적에 따라 프로파일할 사건을 선택한다.

실행 중 대상과 결과 탐색

실행 중인 Java 프로세스를 지정해 일정 시간 관측하고 결과를 저장할 수 있다. 브라우저에서 탐색할 수 있는 플레임 그래프 등으로 호출 경로의 비용을 조사한다. Linux와 macOS의 지원 아키텍처에 따라 실행하며 OpenJDK 등 HotSpot 기반 런타임이 주요 대상이다.

관련 문서

pprof / Speedscope / 플레임 그래프 / Java / 프로파일링 / 가비지 컬렉션