위키득계정 ↗
기술

py-spy

py-spy기술
주요 대상
Python 프로그램
프로파일 방식
호출 스택 샘플링
구현 언어
Rust
주요 명령
record와 top 및 dump
py-spy는 Python 프로그램의 호출 스택을 표본으로 수집하는 프로파일러다. 대상 프로세스 밖에서 메모리를 읽어 실행 정보를 얻으며 코드를 수정하거나 프로그램을 다시 시작하지 않고 분석할 수 있다.

대상 밖에서 읽는 실행 정보

운영체제의 프로세스 메모리 읽기 기능으로 Python 인터프리터의 실행 상태를 조사한다. 인터프리터와 스레드 및 프레임 정보를 따라 호출 스택을 구성한다. 대상 프로그램 안에 프로파일 코드를 넣는 방식과 달리 별도 프로세스에서 관측한다.

기록과 실시간 화면

record는 프로파일을 파일로 남기며 플레임 그래프와 다른 분석 형식으로 출력할 수 있다. top은 어떤 함수에 시간이 쓰이는지 계속 갱신하는 화면을 제공한다. dump는 각 스레드의 현재 호출 스택을 출력해 멈춘 위치 등을 조사하는 데 활용한다.

확장과 실행 조건

자식 프로세스의 표본을 포함하거나 지원 환경에서 네이티브 확장 코드도 프로파일링할 수 있다. Linux와 macOS 및 Windows 등에서 동작하지만 기능과 필요한 권한은 운영체제에 따라 다르다. 다른 프로세스의 메모리에 접근할 권한이 분석 가능 범위에 영향을 준다.

관련 문서

Scalene 프로파일러 / BCC 추적 도구 / bpftrace / Python / Rust / 프로파일링