# Scalene - AI기반 Python용 고성능, 고정밀 CPU/GPU 및 메모리 프로파일러

> Clean Markdown view of GeekNews topic #17400. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=17400](https://news.hada.io/topic?id=17400)
- GeekNews Markdown: [https://news.hada.io/topic/17400.md](https://news.hada.io/topic/17400.md)
- Type: news
- Author: [xguru](https://news.hada.io/@xguru)
- Published: 2024-10-24T10:26:01+09:00
- Updated: 2024-10-24T10:26:01+09:00
- Original source: [github.com/plasma-umass](https://github.com/plasma-umass/scalene)
- Points: 11
- Comments: 2

## Summary

Scalene은 Python 프로파일러 중에서도 AI 기반 최적화 제안을 통합하여 더욱 빠르고 자세한 정보를 제공하는 고성능 도구입니다. CPU, GPU, 메모리 프로파일링을 통해 개발자가 최적화할 수 있는 코드에 집중할 수 있도록 돕고, 특히 메모리 누수와 의도치 않은 데이터 복사를 쉽게 식별할 수 있습니다. 또한, CLI와 웹 기반 GUI를 제공하여 사용자 편의성을 높이고, 다양한 옵션을 통해 맞춤형 프로파일링이 가능합니다.

## Topic Body

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

## Comments



### Comment 30540

- Author: lethee
- Created: 2024-10-29T21:40:11+09:00
- Points: 1

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

### Comment 30567

- Author: xguru
- Created: 2024-10-30T13:46:23+09:00
- Points: 1
- Parent comment: 30540
- Depth: 1

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