프로젝트 소개

py-spy는 Rust로 작성된 샘플링 프로파일러로, 극도로 낮은 오버헤드로 Python 프로그램을 분석하도록 설계되었습니다. 별도의 프로세스에서 실행되며 대상 프로그램의 메모리를 직접 읽기 때문에, 생산 환경에서도 안전하게 사용할 수 있습니다. 주요 기능: - **비침습적 프로파일링**: 프로그램을 재시작하거나 소스 코드를 수정하지 않고도 함수에서 소비된 시간을 시각화할 수 있습니다. - **세 가지 주요 모드**: - `record`: 대화형 SVG 플레임 그래프나 speedscope 파일 등의 형식으로 프로파일을 생성합니다. - `top`: Unix top 명령과 유사하게 가장 많은 시간을 소비하는 함수들에 대한 실시간 고수준 뷰를 제공합니다. - `dump`: 선택적 지역 변수와 함께 각 Python 스레드의 현재 호출 스택을 덤프합니다. - **넓은 호환성**: Linux, OSX, Windows, FreeBSD를 지원하며 CPython 2.3-2.7 및 3.3-3.14 버전과 호환됩니다. - **고급 기능**: - 네이티브 C/C++ 또는 Cython 확장 프로파일링 지원. - subprocesses(예: multiprocessing 또는 gunicorn 워커 풀) 프로파일링 가능. - GIL(Global Interpreter Lock) 감지를 통해 잠금을所持한 스레드만 필터링. - 대상 프로세스를 완전히 일시 중지하지 않는 비블로킹 모드.