Skip to main content

scalene

Scalene: a Python CPU+GPU+memory profiler with AI-powered optimization proposals

by Emery Berger, Sam Stern, and Juan Altmayer Pizzorno.

Scalene community SlackScalene community Slack

PyPI Latest ReleaseAnaconda-Server Badge DownloadsAnaconda downloads Downloads Python versionsVisual Studio Code Extension version License GitHub Repo stars

Ozsvald tweet

(tweet from Ian Ozsvald, author of High Performance Python)

Semantic Scholar success story

Python Profiler Links to AI to Improve Code Scalene identifies inefficiencies and asks GPT-4 for suggestions, IEEE Spectrum

Episode 172: Measuring Multiple Facets of Python Performance With Scalene, The Real Python podcast

Scalene web-based user interface: https://scalene-gui.github.io/scalene-gui/

About Scalene

Scalene is a high-performance CPU, GPU and memory profiler for Python that does a number of things that other Python profilers do not and cannot do. It runs orders of magnitude faster than many other profilers while delivering far more detailed information. It is also the first profiler ever to incorporate AI-powered proposed optimizations.

AI-powered optimization suggestions

Note

For optimization suggestions, Scalene supports a variety of AI providers, including Amazon Bedrock, Microsoft Azure, OpenAI, and local models via Ollama. To enable AI-powered optimization suggestions from AI providers, you need to select a provider and, if needed, enter your credentials, in the box under "AI Optimization Options". To prefill them from environment variables (such as OPENAI_API_KEY, ANTHROPIC_API_KEY, or AWS_ACCESS_KEY_ID), view the profile with scalene view --api-keys-from-env; the keys are passed only to your local browser session and are never written into the HTML file.

AI Optimization Options

Once you've entered your key and any other needed data, click on the lightning bolt (⚡) beside any line or the explosion (💥) for an entire region of code to generate a proposed optimization. Click on a proposed optimization to copy it to the clipboard.

example proposed optimization

You can click as many times as you like on the lightning bolt or explosion, and it will generate different suggested optimizations. Your mileage may vary, but in some cases, the suggestions are quite impressive (e.g., order-of-magnitude improvements).

Quick Start

Installing Scalene:

python3 -m pip install -U scalene

or

conda install -c conda-forge scalene

Using Scalene:

After installing Scalene, you can use Scalene at the command line, or as a Visual Studio Code extension.

Using the Scalene VS Code Extension:

First, install the Scalene extension from the VS Code Marketplace or by searching for it within VS Code by typing Command-Shift-X (Mac) or Ctrl-Shift-X (Windows). Once that's installed, click Command-Shift-P or Ctrl-Shift-P to open the Command Palette. Then select "Scalene: AI-powered profiling..." (you can start typing Scalene and it will pop up if it's installed). Run that and, assuming your code runs for at least a second, a Scalene profile will appear in a webview.

Screenshot 2023-09-20 at 7 09 06 PM
Commonly used command-line options:

Scalene uses a verb-based command structure with two main commands: run (to profile) and view (to display results).

# Profile a program (saves to scalene-profile.json)
scalene run your_prog.py
python3 -m scalene run your_prog.py              # equivalent alternative

# View a profile
scalene view                                     # open profile in browser
scalene view --cli                               # view in terminal
scalene view --html                              # save to scalene-profile.html
scalene view --standalone                        # save as self-contained HTML

# Common profiling options
scalene run --cpu-only your_prog.py              # only profile CPU (faster)
scalene run -o results.json your_prog.py         # custom output filename
scalene run -c config.yaml your_prog.py          # load options from config file

# Pass arguments to your program (use --- separator)
scalene run your_prog.py --- --arg1 --arg2

# Get help
scalene --help                                   # main help
scalene run --help                               # profiling options
scalene run --help-advanced                      # advanced profiling options
scalene view --help                              # viewing options
Using a YAML configuration file:

You can store Scalene options in a YAML configuration file and load them with -c or --config:

scalene run -c scalene.yaml your_prog.py

Example scalene.yaml:

# Output options
outfile: my-profile.json

# Profiling mode (use only one)
cpu-only: true              # CPU profiling only (faster)
# gpu: true                 # Include GPU profiling
# memory: true              # Include memory profiling

# Filter what gets profiled
profile-only: "mypackage,mymodule"    # Only profile these paths
profile-exclude: "tests,venv"          # Exclude these paths
profile-all: false                     # Profile all code, not just target

# Performance tuning
cpu-percent-threshold: 1     # Min CPU% to report (default: 1)
cpu-sampling-rate: 0.01      # Sampling interval in seconds
malloc-threshold: 100        # Min allocations to report

# Other options
use-virtual-time: false      # Measure CPU time only (not I/O)
stacks: true                 # Collect stack traces (default: true)
memory-leak-detector: true   # Detect likely memory leaks

Command-line arguments override config file settings.

Using Scalene programmatically in your code:

Invoke using scalene as above and then:

from scalene import scalene_profiler

# Turn profiling on
scalene_profiler.start()

# your code

# Turn profiling off
scalene_profiler.stop()
from scalene.scalene_profiler import enable_profiling

with enable_profiling():
    # do something
Using Scalene to profile only specific functions via @profile:

Just preface any functions you want to profile with the @profile decorator and run it with Scalene:

# do not import profile!

@profile
def slow_function():
    import time
    time.sleep(3)

Web-based GUI

Scalene has both a CLI and a web-based GUI (demo here).

By default, once Scalene has profiled your program, it will open a tab in a web browser with an interactive user interface (all processing is done locally). Hover over bars to see breakdowns of CPU and memory consumption, and click on underlined column headers to sort the columns. The GUI works fully offline with no internet connection required.

Use scalene view --standalone to generate a completely self-contained HTML file with all assets embedded, perfect for sharing or archiving.

Scalene web GUI

Scalene Overview

Scalene talk (PyCon US 2021)

This talk presented at PyCon 2021 walks through Scalene's advantages and how to use it to debug the performance of an application (and provides some technical details on its internals). We highly recommend watching this video!

Scalene presentation at PyCon 2021

Fast and Accurate

  • Scalene is fast. It uses sampling instead of instrumentation or relying on Python's tracing facilities. Its overhead is typically no more than 10-20% (and often less).

  • Scalene is accurate. We tested CPU profiler accuracy and found that Scalene is among the most accurate profilers, correctly measuring time taken.

Profiler accuracy

  • Scalene performs profiling at the line level and per function, pointing to the functions and the specific lines of code responsible for the execution time in your program.

CPU profiling

  • Scalene separates out time spent in Python from time in native code (including libraries). Most Python programmers aren't going to optimize the performance of native code (which is usually either in the Python implementation or external libraries), so this helps developers focus their optimization efforts on the code they can actually improve.
  • Scalene highlights hotspots (code accounting for significant percentages of CPU time or memory allocation) in red, making them even easier to spot.
  • Scalene also separates out system time, making it easy to find I/O bottlenecks.

GPU profiling

  • Scalene reports GPU time (currently limited to NVIDIA-based systems).

Memory profiling

  • Scalene profiles memory usage. In addition to tracking CPU usage, Scalene also points to the specific lines of code responsible for memory growth. It accomplishes this via an included specialized memory allocator.
  • Scalene separates out the percentage of memory consumed by Python code vs. native code.
  • Scalene produces per-line memory profiles.
  • Scalene identifies lines with likely memory leaks.
  • Scalene profiles copying volume, making it easy to spot inadvertent copying, especially due to crossing Python/library boundaries (e.g., accidentally converting numpy arrays into Python arrays, and vice versa).

Async profiling

Scalene attributes wall-clock await time to the exact line where the coroutine is suspended, alongside the mean and peak number of coroutines waiting concurrently on that line. This makes it easy to spot serialized I/O (long await, low concurrency) versus genuinely-parallel fan-out (long await, high concurrency). The await column in the GUI draws a clockwise pie wedge per line; bigger wedges mean more time spent suspended on that await.

Async profiling is on by default; pass --no-async to disable it. Overhead on non-async code is negligible (one frozenset lookup per signal, and sys.monitoring callbacks never fire when no coroutines are running).

Per-line await time pies

Stack views (call stacks, memory flame chart, timeline)

When Scalene is run with --stacks (the default — pass --no-stacks to disable), it captures stitched Python + native (C/C++) stacks at every CPU and allocation sample, and presents them three ways in the GUI:

  • Call stacks — a flame chart of the top stitched stacks across the whole run. Python frames are clickable to jump to source. Native frames are demangled and shown alongside Python frames in the same picture, so you can see exactly which library call is on the hot path.

    Call stacks flame chart

  • Memory stacks — a memory-weighted flame chart where frame width is proportional to MB allocated along that call path (not sample count). Useful for finding which call paths are responsible for a program's memory footprint, especially when allocations come from deep inside a library.

    Memory stacks flame chart

  • Timeline — an icicle/time-series view of the same stitched stacks laid out left-to-right by wall-clock time, with tracks at the top marking GC, I/O, and GIL activity. Coroutines appear as [await] task_name frames so you can see when each task ran versus waited.

    Timeline view

All three views are collapsible and resizable; expand them via the disclosure triangles at the bottom of the GUI.

Other features

  • Scalene can produce reduced profiles (via --reduced-profile) that only report lines that consume more than 1% of CPU or perform at least 100 allocations.
  • Scalene supports @profile decorators to profile only specific functions.
  • When Scalene is profiling a program launched in the background (via &), you can suspend and resume profiling.
  • Scalene supports free-threaded Python (3.13t / 3.14t) with full CPU + memory profiling.
  • Scalene's GUI is fully offline / air-gapped — assets are vendored and scalene view --standalone produces a single self-contained HTML file you can email or archive.

Comparison to Other Profilers

Performance and Features

Below is a table comparing the performance and features of various profilers to Scalene.

Performance and feature comparison

  • Slowdown: the slowdown when running a benchmark from the Pyperformance suite. Green means less than 2x overhead. Scalene's overhead is just a 35% slowdown.

Scalene has all of the following features, many of which only Scalene supports:

  • Lines or functions: does the profiler report information only for entire functions, or for every line -- Scalene does both.
  • Unmodified Code: works on unmodified code.
  • Threads: supports Python threads.
  • Multiprocessing: supports use of the multiprocessing library -- Scalene only
  • Python vs. C time: breaks out time spent in Python vs. native code (e.g., libraries) -- Scalene only
  • System time: breaks out system time (e.g., sleeping or performing I/O) -- Scalene only
  • Profiles memory: reports memory consumption per line / function
  • GPU: reports time spent on an NVIDIA GPU (if present) -- Scalene only
  • Memory trends: reports memory use over time per line / function -- Scalene only
  • Copy volume: reports megabytes being copied per second -- Scalene only
  • Detects leaks: automatically pinpoints lines responsible for likely memory leaks -- Scalene only
  • Async / await profiling: per-line wall-clock attribution of suspended coroutine time, with mean and peak concurrency -- Scalene only
  • Stitched Python + native stacks: flame charts and a wall-clock timeline that combine Python and C/C++ frames in one picture -- Scalene only

Output

If you include the --cli option, Scalene prints annotated source code for the program being profiled (as text, JSON (--json), or HTML (--html)) and any modules it uses in the same directory or subdirectories (you can optionally have it --profile-all and only include files with at least a --cpu-percent-threshold of time). Here is a snippet from pystone.py.

Example profile

  • Memory usage at the top: Visualized by "sparklines", memory consumption over the runtime of the profiled code.
  • "Time Python": How much time was spent in Python code.
  • "native": How much time was spent in non-Python code (e.g., libraries written in C/C++).
  • "system": How much time was spent in the system (e.g., I/O).
  • "GPU": (not shown here) How much time spent on the GPU, if your system has an NVIDIA GPU installed.
  • "Memory Python": How much of the memory allocation happened on the Python side of the code, as opposed to in non-Python code (e.g., libraries written in C/C++).
  • "net": Positive net memory numbers indicate total memory allocation in megabytes; negative net memory numbers indicate memory reclamation.
  • "timeline / %": Visualized by "sparklines", memory consumption generated by this line over the program runtime, and the percentages of total memory activity this line represents.
  • "Copy (MB/s)": The amount of megabytes being copied per second (see "About Scalene").

Scalene

The following command runs Scalene on a provided example program.

scalene test/testme.py
Click to see all Scalene's options (available by running with --help)
% scalene --help
Scalene: a high-precision CPU and memory profiler, version 1.5.51 (2025.01.29)
https://github.com/plasma-umass/scalene

commands:
  run     Profile a Python program (saves to scalene-profile.json)
  view    View an existing profile in browser or terminal

examples:
  % scalene run your_program.py              # profile, save to scalene-profile.json
  % scalene view                             # view scalene-profile.json in browser
  % scalene view --cli                       # view profile in terminal

in Jupyter, line mode:
  %scrun [options] statement

in Jupyter, cell mode:
  %%scalene [options]
   your code here

% scalene run --help
Profile a Python program with Scalene.

examples:
  % scalene run prog.py                 # profile, save to scalene-profile.json
  % scalene run -o my.json prog.py      # save to custom file
  % scalene run --cpu-only prog.py      # profile CPU only (faster)
  % scalene run -c scalene.yaml prog.py # load options from config file
  % scalene run prog.py --- --arg       # pass args to program
  % scalene run --help-advanced         # show advanced options

options:
  -h, --help            show this help message and exit
  -o, --outfile OUTFILE output file (default: scalene-profile.json)
  --cpu-only            only profile CPU time (no memory/GPU)
  -c, --config FILE     load options from YAML config file
  --help-advanced       show advanced options

% scalene run --help-advanced
Advanced options for scalene run:

background profiling:
  Use --off to start with profiling disabled, then control it from another terminal:
    % scalene run --off prog.py          # start with profiling off
    % python3 -m scalene.profile --on  --pid <PID>   # resume profiling
    % python3 -m scalene.profile --off --pid <PID>   # suspend profiling

options:
  --profile-all         profile all code, not just the target program
  --profile-only PATH   only profile files containing these strings (comma-separated)
  --profile-exclude PATH exclude files containing these strings (comma-separated)
  --profile-system-libraries  profile Python stdlib and installed packages (default: skip)
  --gpu                 profile GPU time and memory
  --memory              profile memory usage
  --stacks              collect stack traces (default: on)
  --no-stacks           disable stack-trace collection
  --profile-interval N  output profiles every N seconds (default: inf)
  --use-virtual-time    measure only CPU time, not I/O or blocking
  --cpu-percent-threshold N  only report lines with at least N% CPU (default: 1%)
  --cpu-sampling-rate N CPU sampling rate in seconds (default: 0.01)
  --allocation-sampling-window N  allocation sampling window in bytes
  --malloc-threshold N  only report lines with at least N allocations (default: 100)
  --program-path PATH   directory containing code to profile
  --memory-leak-detector  EXPERIMENTAL: report likely memory leaks
  --on                  start with profiling on (default)
  --off                 start with profiling off

% scalene view --help
View an existing Scalene profile.

examples:
  % scalene view                    # open in browser
  % scalene view --cli              # view in terminal
  % scalene view --html             # save to scalene-profile.html
  % scalene view --standalone       # save as single self-contained HTML file
  % scalene view myprofile.json     # open specific profile in browser
  % scalene view --api-keys-from-env  # prefill AI API keys from env vars

options:
  -h, --help     show this help message and exit
  --cli          display profile in the terminal
  --html         save to scalene-profile.html (no browser)
  --standalone   save as a single self-contained HTML file with all
                 assets embedded (implies --html)
  -r, --reduced  only show lines with activity (--cli mode)
  --api-keys-from-env
                 prefill AI provider API keys from environment variables;
                 served only to the local browser, never written to HTML

Scalene with Jupyter

Instructions for installing and using Scalene with Jupyter notebooks

This notebook illustrates the use of Scalene in Jupyter.

Installation:

!pip install scalene
%load_ext scalene

Line mode:

%scrun [options] statement

Cell mode:

%%scalene [options]
code...
code...

Installation

Using pip (Mac OS X, Linux, Windows, and WSL2)

Scalene is distributed as a pip package and works on Mac OS X, Linux (including Ubuntu in Windows WSL2) and Windows platforms.

Note for Windows users

Starting with Scalene 2.0, Windows supports full memory profiling. If you encounter issues, ensure you have the Visual C++ Redistributable installed. If building from source, you will need Visual C++ Build Tools and CMake.

You can install it as follows:

  % pip install -U scalene

or

  % python3 -m pip install -U scalene

You may need to install some packages first.

See https://stackoverflow.com/a/19344978/4954434 for full instructions for all Linux flavors.

For Ubuntu/Debian:

  % sudo apt install git python3-all-dev
Using conda (Mac OS X, Linux, Windows, and WSL2)
  % conda install -c conda-forge scalene

Scalene is distributed as a conda package and works on Mac OS X, Linux (including Ubuntu in Windows WSL2) and Windows platforms.

Note for Windows users

Starting with Scalene 2.0, Windows supports full memory profiling. If you encounter issues, ensure you have the Visual C++ Redistributable installed.

On ArchLinux

You can install Scalene on Arch Linux via the AUR package. Use your favorite AUR helper, or manually download the PKGBUILD and run makepkg -cirs to build. Note that this will place libscalene.so in /usr/lib; modify the below usage instructions accordingly.

Frequently Asked Questions

Can I use Scalene with PyTest?

A: Yes! You can run it as follows (for example):

scalene run -m pytest your_test.py

or

python3 -m scalene run -m pytest your_test.py

Is there any way to get shorter profiles or do more targeted profiling?

A: Yes! There are several options:

  1. Use --reduced-profile to include only lines and files with memory/CPU/GPU activity.
  2. Use --profile-only to include only filenames containing specific strings (as in, --profile-only foo,bar,baz).
  3. Decorate functions of interest with @profile to have Scalene report only those functions.
  4. Turn profiling on and off programmatically by importing Scalene profiler (from scalene import scalene_profiler) and then turning profiling on and off via scalene_profiler.start() and scalene_profiler.stop(). By default, Scalene runs with profiling on, so to delay profiling until desired, use the --off command-line option (scalene run --off yourprogram.py).
How do I run Scalene in PyCharm?

A: In PyCharm, you can run Scalene at the command line by opening the terminal at the bottom of the IDE and running a Scalene command (e.g., scalene run <your program>). Then use scalene view --html to generate an HTML file (scalene-profile.html) that you can view in the IDE.

How do I use Scalene with Django?

A: Pass in the --noreload option (see https://github.com/plasma-umass/scalene/issues/178).

Does Scalene work with gevent/Greenlets?

A: Yes! Put the following code in the beginning of your program, or modify the call to monkey.patch_all as below:

from gevent import monkey
monkey.patch_all(thread=False)
How do I use Scalene with PyTorch on the Mac?

A: Scalene works with PyTorch version 1.5.1 on Mac OS X. There's a bug in newer versions of PyTorch (https://github.com/pytorch/pytorch/issues/57185) that interferes with Scalene (discussion here: https://github.com/plasma-umass/scalene/issues/110), but only on Macs.

Technical Information

For details about how Scalene works, please see the following paper, which won the Jay Lepreau Best Paper Award at OSDI 2023: Triangulating Python Performance Issues with Scalene. (Note that this paper does not include information about the AI-driven proposed optimizations.)

To cite Scalene in an academic paper, please use the following:
@inproceedings{288540,
author = {Emery D. Berger and Sam Stern and Juan Altmayer Pizzorno},
title = {Triangulating Python Performance Issues with {S}calene},
booktitle = {{17th USENIX Symposium on Operating Systems Design and Implementation (OSDI 23)}},
year = {2023},
isbn = {978-1-939133-34-2},
address = {Boston, MA},
pages = {51--64},
url = {https://www.usenix.org/conference/osdi23/presentation/berger},
publisher = {USENIX Association},
month = jul
}

Success Stories

If you use Scalene to successfully debug a performance problem, please add a comment to this issue!

Acknowledgements

Logo created by Sophia Berger.

This material is based upon work supported by the National Science Foundation under Grant No. 1955610. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.

Metadata

Release files for scalene 2.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for scalene 2.4.0
File Size Uploaded Provenance Actions
scalene-2.4.0.tar.gz 9.9 MB Without provenance Details for scalene-2.4.0.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for scalene 2.4.0
File Actions
scalene-2.4.0-cp314-cp314t-win_amd64.whl CPython 3.14 CPython 3.14 free-threading Windows x86-64 Details for scalene-2.4.0-cp314-cp314t-win_amd64.whl
scalene-2.4.0-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 Details for scalene-2.4.0-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
scalene-2.4.0-cp314-cp314t-macosx_26_0_universal2.whl CPython 3.14 CPython 3.14 free-threading macOS 26.0+ universal2 (ARM64, x86-64) Details for scalene-2.4.0-cp314-cp314t-macosx_26_0_universal2.whl
scalene-2.4.0-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details for scalene-2.4.0-cp314-cp314-win_amd64.whl
scalene-2.4.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 Details for scalene-2.4.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
scalene-2.4.0-cp314-cp314-macosx_26_0_universal2.whl CPython 3.14 CPython 3.14 macOS 26.0+ universal2 (ARM64, x86-64) Details for scalene-2.4.0-cp314-cp314-macosx_26_0_universal2.whl
scalene-2.4.0-cp313-cp313t-win_amd64.whl CPython 3.13 CPython 3.13 free-threading Windows x86-64 Details for scalene-2.4.0-cp313-cp313t-win_amd64.whl
scalene-2.4.0-cp313-cp313t-macosx_26_0_universal2.whl CPython 3.13 CPython 3.13 free-threading macOS 26.0+ universal2 (ARM64, x86-64) Details for scalene-2.4.0-cp313-cp313t-macosx_26_0_universal2.whl
scalene-2.4.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details for scalene-2.4.0-cp313-cp313-win_amd64.whl
scalene-2.4.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 Details for scalene-2.4.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
scalene-2.4.0-cp313-cp313-macosx_26_0_universal2.whl CPython 3.13 CPython 3.13 macOS 26.0+ universal2 (ARM64, x86-64) Details for scalene-2.4.0-cp313-cp313-macosx_26_0_universal2.whl
scalene-2.4.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details for scalene-2.4.0-cp312-cp312-win_amd64.whl
scalene-2.4.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 Details for scalene-2.4.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
scalene-2.4.0-cp312-cp312-macosx_26_0_universal2.whl CPython 3.12 CPython 3.12 macOS 26.0+ universal2 (ARM64, x86-64) Details for scalene-2.4.0-cp312-cp312-macosx_26_0_universal2.whl
scalene-2.4.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 Details for scalene-2.4.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
scalene-2.4.0-cp311-cp311-macosx_26_0_universal2.whl CPython 3.11 CPython 3.11 macOS 26.0+ universal2 (ARM64, x86-64) Details for scalene-2.4.0-cp311-cp311-macosx_26_0_universal2.whl
scalene-2.4.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details for scalene-2.4.0-cp310-cp310-win_amd64.whl
scalene-2.4.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 Details for scalene-2.4.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
scalene-2.4.0-cp310-cp310-macosx_26_0_universal2.whl CPython 3.10 CPython 3.10 macOS 26.0+ universal2 (ARM64, x86-64) Details for scalene-2.4.0-cp310-cp310-macosx_26_0_universal2.whl
scalene-2.4.0-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details for scalene-2.4.0-cp39-cp39-win_amd64.whl
scalene-2.4.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 Details for scalene-2.4.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
scalene-2.4.0-cp39-cp39-macosx_26_0_universal2.whl CPython 3.9 CPython 3.9 macOS 26.0+ universal2 (ARM64, x86-64) Details for scalene-2.4.0-cp39-cp39-macosx_26_0_universal2.whl

Total release size: 37.3 MB

Release files / scalene-2.4.0.tar.gz

Download URL scalene-2.4.0.tar.gz
Size 9.9 MB
Tags Source
SHA-256 checksum
How to use checksums
bdf2a7b6cf3489e5c3fb77c76dd5627a9c595bc1e198a2bf28d4890481b3d8a6
BLAKE2b-256 checksum
How to use checksums
961ec55ffb69fb902022e9bddfcb67611c1d8bfc95631708760520949f9f3f46
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / scalene-2.4.0-cp314-cp314t-win_amd64.whl

Download URL scalene-2.4.0-cp314-cp314t-win_amd64.whl
Size 1.1 MB
Tags CPython 3.14 CPython 3.14 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
625b0af43409695a618a48ab5b6c8712f6266ce206d712b784016816f5365538
BLAKE2b-256 checksum
How to use checksums
42504a3d6cf9019e5718db609f7146efecae47bc94783ce6aa928b5f0bcbe4b8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / scalene-2.4.0-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL scalene-2.4.0-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 1.6 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
6d56dfc2180ab9bb85deb535bbaaf50da496f8c0c154c22f158ca94be87c865d
BLAKE2b-256 checksum
How to use checksums
a666992256a25b832d0b5e57c4f55da80866605d3ab5c8af6526db8bd83ff63e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / scalene-2.4.0-cp314-cp314t-macosx_26_0_universal2.whl

Download URL scalene-2.4.0-cp314-cp314t-macosx_26_0_universal2.whl
Size 1.2 MB
Tags CPython 3.14 CPython 3.14 free-threading macOS 26.0+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
75989eb88ac981befded5c15b3ab83631ec72ea269cd58c8ac8494188ab764a3
BLAKE2b-256 checksum
How to use checksums
9a49a5dfa159e9179a6244e37670200cb364f59da8aa286e0ec9a6445443dab0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / scalene-2.4.0-cp314-cp314-win_amd64.whl

Download URL scalene-2.4.0-cp314-cp314-win_amd64.whl
Size 1.1 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
b2f6bfa8b20e80f42588a66528a82702ca5544cba97f34a4adb31cd6298208fd
BLAKE2b-256 checksum
How to use checksums
c79896b9bd5e721b58c91aaf230a82914d738abb380f2c352d408d5cc5b117c4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / scalene-2.4.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL scalene-2.4.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 1.5 MB
Tags CPython 3.14 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
c83fe41db17653b5043f0e0dfff6c2ac776a1171a41b81c0249d03a5a98be701
BLAKE2b-256 checksum
How to use checksums
bd450b076e3716d1b4883cf9beee85b36cb1e0378d6ece223fabef7f8a6cddb9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / scalene-2.4.0-cp314-cp314-macosx_26_0_universal2.whl

Download URL scalene-2.4.0-cp314-cp314-macosx_26_0_universal2.whl
Size 1.2 MB
Tags CPython 3.14 macOS 26.0+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
753d03c683b9f2f673a833ad40531fe8c383f5bbfedccc690ffcdd1051f11ec9
BLAKE2b-256 checksum
How to use checksums
98c05b42548bf20e9df58df588737c8482122c6b1f3e204e09964d9474592d51
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / scalene-2.4.0-cp313-cp313t-win_amd64.whl

Download URL scalene-2.4.0-cp313-cp313t-win_amd64.whl
Size 1.1 MB
Tags CPython 3.13 CPython 3.13 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
c00ce5d1f651726eb42084815ce58f276ff8ff57d2daaeb259609e5e01c5bb36
BLAKE2b-256 checksum
How to use checksums
6c56a043185b57f655f6bf72c30d8b6074e5daebfef66395635fcc445e949aac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / scalene-2.4.0-cp313-cp313t-macosx_26_0_universal2.whl

Download URL scalene-2.4.0-cp313-cp313t-macosx_26_0_universal2.whl
Size 1.2 MB
Tags CPython 3.13 CPython 3.13 free-threading macOS 26.0+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
0986d8868530a87cb8267a4b5e08894ad2c4747ae1d41e0a904baf14cc514373
BLAKE2b-256 checksum
How to use checksums
038b4fea51ad97cd4f7aa94b84bf2c886ec2bd4947b748d15b94c5dd42029b45
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / scalene-2.4.0-cp313-cp313-win_amd64.whl

Download URL scalene-2.4.0-cp313-cp313-win_amd64.whl
Size 1.1 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
6aff6509181dd29d26341e6fb3274201c569e983419e137b701ad203b67e47eb
BLAKE2b-256 checksum
How to use checksums
06750f60df4a04c411f7373d33a86791efbed6be42ca59935f7b5d1d25dfce04
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / scalene-2.4.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL scalene-2.4.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 1.5 MB
Tags CPython 3.13 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
31c0a48a614a88df86acf4b39d38f4415673864eb210a9576bbd843e3d56a856
BLAKE2b-256 checksum
How to use checksums
c8539087751ac6e583d4c3a18a50e3b27c64db890c8b9f7ec27ef33363f30109
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / scalene-2.4.0-cp313-cp313-macosx_26_0_universal2.whl

Download URL scalene-2.4.0-cp313-cp313-macosx_26_0_universal2.whl
Size 1.2 MB
Tags CPython 3.13 macOS 26.0+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
7017c0a30ec8a60b3005e844c21782c9e28aba27b845605c912c69d32726133f
BLAKE2b-256 checksum
How to use checksums
da6ec5f4107e41ac3ffa378cef3be4caa0c79914f0b968f6133522fdaf002113
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / scalene-2.4.0-cp312-cp312-win_amd64.whl

Download URL scalene-2.4.0-cp312-cp312-win_amd64.whl
Size 1.1 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
867e3e97f8a4639a91424020e7086978b3ae9cefad0065b4e27d00ae574b9358
BLAKE2b-256 checksum
How to use checksums
7cc92602d46ca65909c854ab0fd3a8ecdd43745f5f7a78b2b023e2ce17cba333
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / scalene-2.4.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL scalene-2.4.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 1.5 MB
Tags CPython 3.12 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
a33dd2ae375eec61394b030ef2286a379cfc2bff57455d2979d63cd6cfd645de
BLAKE2b-256 checksum
How to use checksums
43cea8196626d6ba43e818147d67cc5456f805a72ab0cea05470239edea939f4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / scalene-2.4.0-cp312-cp312-macosx_26_0_universal2.whl

Download URL scalene-2.4.0-cp312-cp312-macosx_26_0_universal2.whl
Size 1.2 MB
Tags CPython 3.12 macOS 26.0+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
ecb396cf9ad107400ac460b8db117dd87977fa8e0e13c59a6d0805ebf3e98f65
BLAKE2b-256 checksum
How to use checksums
0e2ed93a2f7ce4319731fd5ec807898780caba31605d367e8848ced68db7e6e1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / scalene-2.4.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL scalene-2.4.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 1.5 MB
Tags CPython 3.11 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
d0de6cfbbacffa2c041c753c4756cc6c36d357553b909933ad4807242bf01d95
BLAKE2b-256 checksum
How to use checksums
b5096496f727b700e3ab5512eb75f360132cbf719577b0d1216662b52204d81a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / scalene-2.4.0-cp311-cp311-macosx_26_0_universal2.whl

Download URL scalene-2.4.0-cp311-cp311-macosx_26_0_universal2.whl
Size 1.1 MB
Tags CPython 3.11 macOS 26.0+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
2fcb8e2dd4f29e81b19366e076ebd21cbc815cb630b8ea0ec0847d8e102cf29d
BLAKE2b-256 checksum
How to use checksums
dffd1553731b876903160b49b8a5c5a3b4eaf72729480cb700863902a8c6008e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / scalene-2.4.0-cp310-cp310-win_amd64.whl

Download URL scalene-2.4.0-cp310-cp310-win_amd64.whl
Size 1.1 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
dfca044832731acef41a2ef6018bf891372d08c515e7f45c6460000583f9bfa9
BLAKE2b-256 checksum
How to use checksums
85cc0b01ce790e0bb1df3be7e048399156909803e57095b6898018df42e6f699
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / scalene-2.4.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL scalene-2.4.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 1.5 MB
Tags CPython 3.10 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
5e8ae5e4e880450081d2b5b506ea8e6f72bd486025356a64f9c629c0289e993f
BLAKE2b-256 checksum
How to use checksums
4e3a4c0cd23d5ea138a69ef5ebafbeca726390be29998e283ad60a0347c37452
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / scalene-2.4.0-cp310-cp310-macosx_26_0_universal2.whl

Download URL scalene-2.4.0-cp310-cp310-macosx_26_0_universal2.whl
Size 1.1 MB
Tags CPython 3.10 macOS 26.0+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
5eb7423af0faa5e3cde7ecdbc398ed4235d65af43468b79cff0be4f92d1f4258
BLAKE2b-256 checksum
How to use checksums
b0c417cd8870a8c40736c2af5447ba4fa39b3454e4e97828db77074cc84a26f5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / scalene-2.4.0-cp39-cp39-win_amd64.whl

Download URL scalene-2.4.0-cp39-cp39-win_amd64.whl
Size 1.1 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
5979d535777bbaba8bb0c6fc00c5ea7b546a9219bfdcb0439de8b52a2152f7ac
BLAKE2b-256 checksum
How to use checksums
e533012e6be1c961109a8b04a043264d06b1905651dacdc757a699e47cb3a8aa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / scalene-2.4.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL scalene-2.4.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 1.5 MB
Tags CPython 3.9 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
6b4cb2f2919146decc4fb30b5f7fa0402ea511c57d1daec1b0c0ddf0ae11534a
BLAKE2b-256 checksum
How to use checksums
e97768ef932c2cebfd254537b394e04ccc96802edf76149780c57f67a6cb2828
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / scalene-2.4.0-cp39-cp39-macosx_26_0_universal2.whl

Download URL scalene-2.4.0-cp39-cp39-macosx_26_0_universal2.whl
Size 1.1 MB
Tags CPython 3.9 macOS 26.0+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
d8427e8f4d17328de7feeb50252e25fff7d51a2f6395fb6a34bf20899ab917f2
BLAKE2b-256 checksum
How to use checksums
c07a09f46654dea3acd5af4774acac299434b0be6d7e890a3c23ae88c910aba2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Security for scalene 2.4.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

2.4.0 This release

23 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page