Safepoint 편향 없이 CPU, 할당, 잠금 및 네이티브 메모리 프로파일을 수집하는 Java용 저오버헤드 샘플링 프로파일러입니다.
plasma-umass/scalene
CPU, GPU, 메모리 사용량을 줄 단위로 보여주고 AI 최적화 제안도 선택적으로 제공하는 Python 프로파일러입니다.
- 스타
- 13,549
- 포크
- 446
- 열린 이슈
- 154
- 마지막 커밋
- 5일 전
어떤 프로젝트인가요?
Scalene은 Python 프로그램의 CPU 시간, NVIDIA GPU 시간, 메모리 할당을 줄 및 함수 단위로 측정하는 프로파일러입니다. Python 코드에서 소요된 시간과 C/C++ 라이브러리 같은 네이티브 코드에서 소요된 시간을 구분하고, I/O 병목 지점을 찾는 데 도움이 되도록 시스템 시간도 보여줍니다. Scalene은 트레이싱 대신 샘플링을 사용하므로 계측 방식의 프로파일러보다 오버헤드가 낮습니다.
시간 측정 외에도 Scalene은 메모리 증가량과 복사량을 추적하고, 메모리 누수가 의심되는 줄을 표시하며, 코루틴을 기다리는 데 걸린 시간을 집계해 async 코드도 지원합니다. 결과는 오프라인에서도 작동하는 웹 GUI, 터미널 또는 독립형 HTML 파일로 확인할 수 있습니다. VS Code나 Jupyter에서 실행할 수도 있으며, free-threaded Python 3.13t 및 3.14t를 지원합니다.
Scalene은 프로파일링으로 찾은 핫스팟을 OpenAI, Azure, Amazon Bedrock 같은 AI 제공업체나 로컬 Ollama 모델에 보내 코드 최적화 방안을 제안받을 수 있습니다. GUI에서 필요할 때 제안을 생성하며, 사용자가 직접 인증 정보를 제공해야 합니다.
핵심 기능
- 01줄마다 Python 코드, 네이티브 코드, 시스템 시간으로 나눠 CPU 시간을 보여줍니다.
- 02줄 단위 메모리 증가량을 포함해 NVIDIA GPU 시간과 메모리 할당을 프로파일링합니다.
- 03메모리 누수 가능성을 감지하고 Python과 라이브러리 간 복사량을 측정합니다.
- 04줄마다 async 대기 시간을 집계하고 동시성 수준도 보여줍니다.
- 05오프라인 웹 GUI, 터미널 출력, 독립형 HTML 내보내기를 제공합니다.
활용 사례
- 느린 Python 스크립트에서 CPU나 메모리를 가장 많이 사용하는 줄을 찾습니다.
- 속도 저하의 원인이 Python 코드, 네이티브 라이브러리, I/O 중 무엇인지 진단합니다.
- 데이터 파이프라인에서 메모리 누수나 불필요한 numpy-to-list 변환을 찾아냅니다.
- async 서비스에서 await가 직렬로 처리되는지 동시에 실행되는지 프로파일링합니다.
빠른 시작
- 1
pip으로 Scalene 설치하기
python3 -m pip install -U scalene - 2
프로그램 프로파일링하기
scalene run your_prog.py - 3
브라우저에서 프로파일 보기
scalene view
사용 전 알아둘 점
- GPU 프로파일링은 현재 NVIDIA 기반 시스템으로 제한됩니다.
- AI 최적화 제안을 받으려면 OpenAI, Azure, Amazon Bedrock 같은 제공업체나 로컬 Ollama 모델의 인증 정보가 필요합니다.
포함된 컬렉션
토픽
자주 묻는 질문
- scalene은(는) 무엇인가요?
- CPU, GPU, 메모리 사용량을 줄 단위로 보여주고 AI 최적화 제안도 선택적으로 제공하는 Python 프로파일러입니다. Scalene은 Python 프로그램의 CPU 시간, NVIDIA GPU 시간, 메모리 할당을 줄 및 함수 단위로 측정하는 프로파일러입니다. Python 코드에서 소요된 시간과 C/C++ 라이브러리 같은 네이티브 코드에서 소요된 시간을 구분하고, I/O 병목 지점을 찾는 데 도움이 되도록 시스템 시간도 보여줍니다. Scalene은 트레이싱 대신 샘플링을 사용하므로 계측 방식의 프로파일러보다 오버헤드가 낮습니다.
- scalene은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- scalene은(는) Apache-2.0 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- scalene은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. scalene의 마지막 커밋은 2026년 11월 1일입니다.
- scalene은(는) 어디에 사용할 수 있나요?
- 느린 Python 스크립트에서 CPU나 메모리를 가장 많이 사용하는 줄을 찾습니다. 속도 저하의 원인이 Python 코드, 네이티브 라이브러리, I/O 중 무엇인지 진단합니다. 데이터 파이프라인에서 메모리 누수나 불필요한 numpy-to-list 변환을 찾아냅니다. async 서비스에서 await가 직렬로 처리되는지 동시에 실행되는지 프로파일링합니다.
- scalene는 어떻게 설치하나요?
- pip으로 Scalene 설치하기: python3 -m pip install -U scalene 프로그램 프로파일링하기: scalene run your_prog.py 브라우저에서 프로파일 보기: scalene view
- scalene은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/plasma-umass/scalene
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
NVIDIA의 CUDA용 Rust 플랫폼으로, 호스트 런타임 크레이트와 Rust로 GPU 커널을 작성하기 위한 SIMT 및 Tile 모델을 제공합니다.
코드를 수정하거나 프로세스를 재시작하지 않고 실행 중인 프로세스에 연결하는 Python 프로그램용 샘플링 프로파일러입니다.
profile.proto 형식의 프로파일링 데이터를 시각화하고 분석하는 CLI 및 웹 도구입니다.
CPU 및 메모리 성능 문제를 분석하고 .NET 런타임 코드를 조사하는 데 특화된 무료 Windows 도구입니다.
Python에 임베드된 프로그래밍 언어로, 수치 커널을 JIT 컴파일해 CUDA, Vulkan, Metal 같은 CPU와 GPU에서 실행합니다.