Repolode
plasma-umass

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. 1

    pip으로 Scalene 설치하기

    python3 -m pip install -U scalene
  2. 2

    프로그램 프로파일링하기

    scalene run your_prog.py
  3. 3

    브라우저에서 프로파일 보기

    scalene view

사용 전 알아둘 점

  • GPU 프로파일링은 현재 NVIDIA 기반 시스템으로 제한됩니다.
  • AI 최적화 제안을 받으려면 OpenAI, Azure, Amazon Bedrock 같은 제공업체나 로컬 Ollama 모델의 인증 정보가 필요합니다.

포함된 컬렉션

토픽

#python#profiling#performance-analysis#memory-profiling#cpu-profiling#gpu#async#cpu#gpu-programming#memory-allocation

자주 묻는 질문

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 통계는 매일 갱신됩니다.

관련 프로젝트