11P by xguru 16일전 | favorite | 댓글 2개
  • 다른 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 데코레이터를 지원하여 특정 함수만 프로파일링 할 수 있음
    • 백그라운드에서 실행되는 프로그램(&를 통해 실행)의 프로파일링을 일시 중지하고 재개할 수 있음

Nsight에 비해 가볍고 유용하게 사용할 수 있을것 같은데 사용해보고 리뷰 남기겠습니다! 소개 감사합니다.

와 그래주시면 제가 고맙습니다. 가끔 이런 뉴스를 올리면서 어떤 분들이 얼마나 보고 계신지 궁금할 때가 있거든요. ㅎㅎ