전체 호출 경로의 기록
모든 함수 호출을 각각 추적하는 대신 일정 간격을 기준으로 전체 스택을 기록한다. 함수 목록만 보는 것과 달리 비용이 큰 호출이 어떤 상위 경로에서 발생했는지 살필 수 있다. 화면에서는 라이브러리 프레임을 접어 사용자 코드에 집중할 수 있다.
대기 시간을 포함한 비용
측정 기준은 CPU를 사용한 시간만이 아니라 실제 흐른 시간이다. 자료 다운로드와 파일 읽기 및 데이터베이스 응답을 기다리는 시간도 포함한다. 연산 자체의 비용과 외부 작업을 기다리는 지연을 함께 파악하는 데 활용한다.
비동기 실행의 맥락
비동기 모드에서는 현재 실행 맥락을 추적하고 await로 실행이 멈췄을 때의 스택을 기록한다. 맥락 밖에서 보낸 시간을 해당 대기 지점에 연결한다. contextvars를 사용하는 비동기 체계를 지원하며 다른 실행 방식의 지원 범위는 구분된다.
관련 문서
py-spy / Yappi / Austin 프로파일러 / Python / 프로파일링 / 비동기 프로그래밍