scalene
Scalene: A high-resolution, low-overhead CPU, GPU, and memory profiler for Python with AI-powered optimization suggestions
What it is and what it does
Scalene is a sampling-based profiler that measures CPU, GPU, and memory usage in Python programs at the line and function level. Unlike traditional profilers that instrument code or rely on Python's tracing hooks, Scalene uses sampling to keep overhead low while delivering detailed per-line breakdowns of where execution time and memory are consumed. It runs on macOS, Linux, and Windows, supports modern Python versions (3.8–3.14), and integrates with Jupyter, IPython, and VS Code.
The package's distinguishing feature is AI-powered optimization suggestions: after profiling, users can click on specific lines or code regions to request optimization proposals from GPT-4, Azure, Amazon Bedrock, or local models via Ollama. Results are displayed in an interactive web-based GUI (or CLI) that works fully offline. Configuration is flexible—via command-line flags, YAML files, or programmatic decorators—making it suitable for one-off profiling runs and integrated performance monitoring in development workflows.
Use it for:
- Identify CPU and memory bottlenecks in data science pipelines and get AI-suggested rewrites before optimization effort
- Profile GPU-accelerated code to see where computation time is spent and detect memory leaks on device
- Integrate profiling into CI/CD to catch performance regressions at the line level across Python versions
- Debug slow web services or batch jobs by profiling specific functions with the @profile decorator
- Generate shareable performance reports as self-contained HTML files for code review and documentation
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Scalene profiles Python code to measure CPU, GPU, and memory consumption at the line level, and can generate AI-powered optimization suggestions for identified bottlenecks.
Yes. Scalene is actively maintained, well-established (13k+ GitHub stars, top 15k PyPI packages), carries no known vulnerabilities, and solves a real problem—low-overhead, detailed profiling with AI-assisted optimization. The 9 runtime dependencies are standard and widely available. Install friction is moderate but manageable. Recommended for developers who need to understand and optimize Python performance without high profiling overhead.
Install
scalene on PyPI
pip
pip install scaleneuv
uv add scalenepoetry
poetry add scaleneInstalling scalene
Before you install
Medium install friction due to 9 runtime dependencies including numpy, pydantic, and nvidia-ml-py. Package is actively maintained with recent releases and strong community engagement (13494 GitHub stars). Precompiled wheels available for Python 3.8–3.14 on macOS, Linux, and Windows reduce build complexity.
License in practice
Licensed under Apache License (permissive), allowing commercial and private use with minimal restrictions. No license-based constraints on adoption.
Quickstart
pip install scalene
# Profile a script
scalene run your_prog.py
# Or programmatically:
from scalene import scalene_profiler
scalene_profiler.start()
# your code
scalene_profiler.stop()
Requires Python 3.8 or later (excluding 3.11.0). GPU profiling requires NVIDIA drivers and nvidia-ml-py. AI optimization suggestions require credentials for OpenAI, Azure, Amazon Bedrock, or a local Ollama instance.
Verify before relying
- Whether AI optimization suggestions are available without external API credentials or if local-only operation is feasible
- Performance overhead claim of 'typically no more than 10-20%' and accuracy comparison methodology
- Compatibility with async/await code and multiprocessing workloads
Package facts
| License | not declared (permissive) |
| Python support | supports the current Python release (!=3.11.0,>=3.8) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 9 — rich, cloudpickle, nvidia-ml-py, Jinja2, psutil, numpy, astunparse, pydantic, pyyaml |
| Maintenance | actively maintained — 94 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 396,130/month — #6,972 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: scalene-2.3.0-cp310-cp310-macosx_15_0_universal2.whl; scalene-2.3.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl; scalene-2.3.0-cp310-cp310-win_amd64.whl; scalene-2.3.0-cp311-cp311-macosx_15_0_universal2.whl; scalene-2.3.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl; scalene-2.3.0-cp312-cp312-macosx_15_0_universal2.whl; scalene-2.3.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl; scalene-2.3.0-cp312-cp312-win_amd64.whl; scalene-2.3.0-cp313-cp313-macosx_15_0_universal2.whl; scalene-2.3.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl; scalene-2.3.0-cp313-cp313-win_amd64.whl; scalene-2.3.0-cp314-cp314-macosx_15_0_universal2.whl; scalene-2.3.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl; scalene-2.3.0-cp314-cp314-win_amd64.whl; scalene-2.3.0-cp39-cp39-macosx_15_0_universal2.whl; scalene-2.3.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl; scalene-2.3.0-cp39-cp39-win_amd64.whl
Keywords: performance, profiler, optimization, CPU, GPU, memory, LLM
Tags
More Software Development packages
Provides backported and experimental type hints…
permissive · top 100 on PyPI
numpyNumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
fastapiFastAPI is a Python web framework for building…
permissive · top 100 on PyPI
annotated-docProvides a way to document function parameters,…
permissive · top 100 on PyPI
typerTyper builds command-line applications from…
permissive · top 1,000 on PyPI
distlibDistlib provides low-level packaging utilities…
permissive · top 1,000 on PyPI
torch-tb-profilerIntegrates PyTorch profiling data with…
permissive · top 15,000 on PyPI
line-profilerline_profiler measures execution time on a…
permissive · top 5,000 on PyPI
google-cloud-profilerCollects and uploads CPU, memory, and wall-time…
permissive · top 15,000 on PyPI
yappiYappi is a deterministic profiler for Python…
permissive · top 5,000 on PyPI
memory-profilerProfiles memory consumption line-by-line in…
permissive · top 5,000 on PyPI
austin-distAustin is a frame stack sampler for CPython…
copyleft · top 5,000 on PyPI
nvidia-nvtxProvides a Python API for annotating events and…
unclear · top 1,000 on PyPI
tunatuna visualizes Python performance profiles in…
copyleft · top 15,000 on PyPI
pyinstrumentPyinstrument is a statistical call-stack…
permissive · top 5,000 on PyPI
PymplerPympler measures, monitors, and analyzes memory…
permissive · top 5,000 on PyPI