대상 밖에서 읽는 실행 정보
운영체제의 프로세스 메모리 읽기 기능으로 Python 인터프리터의 실행 상태를 조사한다. 인터프리터와 스레드 및 프레임 정보를 따라 호출 스택을 구성한다. 대상 프로그램 안에 프로파일 코드를 넣는 방식과 달리 별도 프로세스에서 관측한다.
기록과 실시간 화면
record는 프로파일을 파일로 남기며 플레임 그래프와 다른 분석 형식으로 출력할 수 있다. top은 어떤 함수에 시간이 쓰이는지 계속 갱신하는 화면을 제공한다. dump는 각 스레드의 현재 호출 스택을 출력해 멈춘 위치 등을 조사하는 데 활용한다.
확장과 실행 조건
자식 프로세스의 표본을 포함하거나 지원 환경에서 네이티브 확장 코드도 프로파일링할 수 있다. Linux와 macOS 및 Windows 등에서 동작하지만 기능과 필요한 권한은 운영체제에 따라 다르다. 다른 프로세스의 메모리에 접근할 권한이 분석 가능 범위에 영향을 준다.
관련 문서
Scalene 프로파일러 / BCC 추적 도구 / bpftrace / Python / Rust / 프로파일링