- 다른 Python 프로파일러가 하지 않거나 할 수 없는 여러 가지 작업을 수행하는 Python용 고성능 CPU, GPU 및 메모리 프로파일러
- 훨씬 더 빠르게 실행되는 동시에 훨씬 더 자세한 정보를 제공하며, 또한 AI 기반 최적화 제안을 통합한 최초의 프로파일러
- CLI 와 웹기반 GUI 제공
- 빠르고 정확함
- 빠름 : 계측이나 Python의 추적 기능에 의존하는 대신 샘플링을 사용. 오버헤드는 일반적으로 10~20%를 넘지 않으며 종종 그 이하
- 정확 : 정확도 테스트한 결과 Scalene이 가장 정확한 프로파일러 중 하나이며 소요 시간을 정확하게 측정하는 것으로 나타났음
- 라인 수준 및 함수별로 프로파일링을 수행하여 프로그램에서 실행 시간을 담당하는 함수와 특정 코드 줄을 가리킴
- CPU 프로파일링
- Python 코드와 네이티브 코드(라이브러리 포함)에서 소요된 시간을 분리하여 측정하여 개발자가 실제로 최적화할 수 있는 코드에 집중할 수 있도록 함
- CPU 시간이나 메모리 할당의 상당 부분을 차지하는 핫스팟을 빨간색으로 강조 표시함
-
시스템 시간을 별도로 분리하여 I/O 병목 현상을 쉽게 찾을 수 있음
- GPU 프로파일링
- NVIDIA 기반 시스템에 한해 GPU 시간을 리포팅함
- 메모리 프로파일링
-
메모리 사용량 프로파일링을 수행하며, 특수 메모리 할당자를 통해 메모리 증가의 원인이 되는 특정 코드라인을 식별함
- Python 코드와 네이티브 코드의 메모리 소비 비율을 분리하여 표시함
-
라인별 메모리 프로필을 생성함
-
메모리 누수가 발생할 가능성이 있는 라인을 식별함
-
복사 볼륨 프로파일링을 통해 Python/라이브러리 경계를 넘나들 때 발생하는 의도치 않은 복사(예:
numpy
배열이 Python 배열로 실수로 변환되는 경우 등)를 쉽게 발견할 수 있음
- 기타 기능
-
--reduced-profile
옵션을 통해 CPU의 1% 이상을 소비하거나 최소 100회 이상의 할당을 수행하는 라인만 보고하는 축소된 프로필을 생성할 수 있음
-
@profile
데코레이터를 지원하여 특정 함수만 프로파일링 할 수 있음
- 백그라운드에서 실행되는 프로그램(
&
를 통해 실행)의 프로파일링을 일시 중지하고 재개할 수 있음