Skip to main content

A memory profiler for Python applications

Reason this release was yanked:

On Linux distros with some versions of glibc, running reports that analyze native stacks will deadlock. Fixed in 1.13.1

Project description


OS Linux OS MacOS PyPI - Python Version PyPI - Implementation PyPI PyPI - Downloads Conda Version Tests Code Style

Memray output

Memray is a memory profiler for Python. It can track memory allocations in Python code, in native extension modules, and in the Python interpreter itself. It can generate several different types of reports to help you analyze the captured memory usage data. While commonly used as a CLI tool, it can also be used as a library to perform more fine-grained profiling tasks.

Notable features:

  • 🕵️‍♀️ Traces every function call so it can accurately represent the call stack, unlike sampling profilers.
  • ℭ Also handles native calls in C/C++ libraries so the entire call stack is present in the results.
  • 🏎 Blazing fast! Profiling slows the application only slightly. Tracking native code is somewhat slower, but this can be enabled or disabled on demand.
  • 📈 It can generate various reports about the collected memory usage data, like flame graphs.
  • 🧵 Works with Python threads.
  • 👽🧵 Works with native-threads (e.g. C++ threads in C extensions).

Memray can help with the following problems:

  • Analyze allocations in applications to help discover the cause of high memory usage.
  • Find memory leaks.
  • Find hotspots in code that cause a lot of allocations.

Note Memray only works on Linux and MacOS, and cannot be installed on other platforms.

Help us improve Memray!

We are constantly looking for feedback from our awesome community ❤️. If you have used Memray to solve a problem, profile an application, find a memory leak or anything else, please let us know! We would love to hear about your experience and how Memray helped you.

Please, consider writing your story in the Success Stories discussion page.

It really makes a difference!

Installation

Memray requires Python 3.7+ and can be easily installed using most common Python packaging tools. We recommend installing the latest stable release from PyPI with pip:

    python3 -m pip install memray

Notice that Memray contains a C extension so releases are distributed as binary wheels as well as the source code. If a binary wheel is not available for your system (Linux x86/x64 or macOS), you'll need to ensure that all the dependencies are satisfied on the system where you are doing the installation.

Building from source

If you wish to build Memray from source you need the following binary dependencies in your system:

  • libdebuginfod-dev (for Linux)
  • libunwind (for Linux)
  • liblz4

Check your package manager on how to install these dependencies (for example apt-get install build-essential python3-dev libdebuginfod-dev libunwind-dev liblz4-dev in Debian-based systems or brew install lz4 in MacOS). Note that you may need to teach the compiler where to find the header and library files of the dependencies. For example, in MacOS with brew you may need to run:

export CFLAGS="-I$(brew --prefix lz4)/include" LDFLAGS="-L$(brew --prefix lz4)/lib -Wl,-rpath,$(brew --prefix lz4)/lib"

before installing memray. Check the documentation of your package manager to know the location of the header and library files for more detailed information.

If you are building on MacOS, you will also need to set the deployment target.

export MACOSX_DEPLOYMENT_TARGET=10.14

Once you have the binary dependencies installed, you can clone the repository and follow with the normal building process:

git clone git@github.com:bloomberg/memray.git memray
cd memray
python3 -m venv ../memray-env/  # just an example, put this wherever you want
source ../memray-env/bin/activate
python3 -m pip install --upgrade pip
python3 -m pip install -e . -r requirements-test.txt -r requirements-extra.txt

This will install Memray in the virtual environment in development mode (the -e of the last pip install command).

If you plan to contribute back, you should install the pre-commit hooks:

pre-commit install

This will ensure that your contribution passes our linting checks.

Documentation

You can find the latest documentation available here.

Usage

There are many ways to use Memray. The easiest way is to use it as a command line tool to run your script, application, or library.

usage: memray [-h] [-v] {run,flamegraph,table,live,tree,parse,summary,stats} ...

Memory profiler for Python applications

Run `memray run` to generate a memory profile report, then use a reporter command
such as `memray flamegraph` or `memray table` to convert the results into HTML.

Example:

    $ python3 -m memray run -o output.bin my_script.py
    $ python3 -m memray flamegraph output.bin

positional arguments:
  {run,flamegraph,table,live,tree,parse,summary,stats}
                        Mode of operation
    run                 Run the specified application and track memory usage
    flamegraph          Generate an HTML flame graph for peak memory usage
    table               Generate an HTML table with all records in the peak memory usage
    live                Remotely monitor allocations in a text-based interface
    tree                Generate a tree view in the terminal for peak memory usage
    parse               Debug a results file by parsing and printing each record in it
    summary             Generate a terminal-based summary report of the functions that allocate most memory
    stats               Generate high level stats of the memory usage in the terminal

optional arguments:
  -h, --help            Show this help message and exit
  -v, --verbose         Increase verbosity. Option is additive and can be specified up to 3 times
  -V, --version         Displays the current version of Memray

Please submit feedback, ideas, and bug reports by filing a new issue at https://github.com/bloomberg/memray/issues

To use Memray over a script or a single python file you can use:

python3 -m memray run my_script.py

If you normally run your application with python3 -m my_module, you can use the -m flag with memray run:

python3 -m memray run -m my_module

You can also invoke Memray as a command line tool without having to use -m to invoke it as a module:

memray run my_script.py
memray run -m my_module

The output will be a binary file (like memray-my_script.2369.bin) that you can analyze in different ways. One way is to use the memray flamegraph command to generate a flame graph:

memray flamegraph my_script.2369.bin

This will produce an HTML file with a flame graph of the memory usage that you can inspect with your favorite browser. There are multiple other reporters that you can use to generate other types of reports, some of them generating terminal-based output and some of them generating HTML files. Here is an example of a Memray flamegraph:

Pytest plugin

If you want an easy and convenient way to use memray in your test suite, you can consider using pytest-memray. Once installed, this pytest plugin allows you to simply add --memray to the command line invocation:

pytest --memray tests/

And will automatically get a report like this:

python3 -m pytest tests --memray
=============================================================================================================================== test session starts ================================================================================================================================
platform linux -- Python 3.8.10, pytest-6.2.4, py-1.10.0, pluggy-0.13.1
rootdir: /mypackage, configfile: pytest.ini
plugins: cov-2.12.0, memray-0.1.0
collected 21 items

tests/test_package.py .....................                                                                                                                                                                                                                      [100%]


================================================================================================================================= MEMRAY REPORT ==================================================================================================================================
Allocations results for tests/test_package.py::some_test_that_allocates

	 📦 Total memory allocated: 24.4MiB
	 📏 Total allocations: 33929
	 📊 Histogram of allocation sizes: |▂   █    |
	 🥇 Biggest allocating functions:
		- parse:/opt/bb/lib/python3.8/ast.py:47 -> 3.0MiB
		- parse:/opt/bb/lib/python3.8/ast.py:47 -> 2.3MiB
		- _visit:/opt/bb/lib/python3.8/site-packages/astroid/transforms.py:62 -> 576.0KiB
		- parse:/opt/bb/lib/python3.8/ast.py:47 -> 517.6KiB
		- __init__:/opt/bb/lib/python3.8/site-packages/astroid/node_classes.py:1353 -> 512.0KiB

You can also use some of the included markers to make tests fail if the execution of said test allocates more memory than allowed:

@pytest.mark.limit_memory("24 MB")
def test_foobar():
    # do some stuff that allocates memory

To learn more on how the plugin can be used and configured check out the plugin documentation.

Native mode

Memray supports tracking native C/C++ functions as well as Python functions. This can be especially useful when profiling applications that have C extensions (such as numpy or pandas) as this gives a holistic vision of how much memory is allocated by the extension and how much is allocated by Python itself.

To activate native tracking, you need to provide the --native argument when using the run subcommand:

memray run --native my_script.py

This will automatically add native information to the result file and it will be automatically used by any reporter (such the flamegraph or table reporters). This means that instead of seeing this in the flamegraphs:

You will now be able to see what's happening inside the Python calls:

Reporters display native frames in a different color than Python frames. They can also be distinguished by looking at the file location in a frame (Python frames will generally be generated from files with a .py extension while native frames will be generated from files with extensions like .c, .cpp or .h).

Live mode

Memray output

Memray's live mode runs a script or a module in a terminal-based interface that allows you to interactively inspect its memory usage while it runs. This is useful for debugging scripts or modules that take a long time to run or that exhibit multiple complex memory patterns. You can use the --live option to run the script or module in live mode:

    memray run --live my_script.py

or if you want to execute a module:

    memray run --live -m my_module

This will show the following TUI interface in your terminal:

Sorting results

The results are displayed in descending order of total memory allocated by a function and the subfunctions called by it. You can change the ordering with the following keyboard shortcuts:

  • t (default): Sort by total memory

  • o: Sort by own memory

  • a: Sort by allocation count

In most terminals you can also click the "Sort by Total", "Sort by Own", and "Sort by Allocations" buttons on the footer.

The sorted column's heading is underlined.

Viewing different threads

By default, the live command will present the main thread of the program. You can look at different threads of the program by pressing the greater than and less than keys, < and >. In most terminals you can also click the "Previous Thread" and "Next Thread" buttons on the footer.

API

In addition to tracking Python processes from a CLI using memray run, it is also possible to programmatically enable tracking within a running Python program.

import memray

with memray.Tracker("output_file.bin"):
    print("Allocations will be tracked until the with block ends")

For details, see the API documentation.

License

Memray is Apache-2.0 licensed, as found in the LICENSE file.

Code of Conduct

This project has adopted a Code of Conduct. If you have any concerns about the Code, or behavior that you have experienced in the project, please contact us at opensource@bloomberg.net.

Security Policy

If you believe you have identified a security vulnerability in this project, please send an email to the project team at opensource@bloomberg.net, detailing the suspected issue and any methods you've found to reproduce it.

Please do NOT open an issue in the GitHub repository, as we'd prefer to keep vulnerability reports private until we've had an opportunity to review and address them.

Contributing

We welcome your contributions to help us improve and extend this project!

Below you will find some basic steps required to be able to contribute to the project. If you have any questions about this process or any other aspect of contributing to a Bloomberg open source project, feel free to send an email to opensource@bloomberg.net and we'll get your questions answered as quickly as we can.

Contribution Licensing

Since this project is distributed under the terms of an open source license, contributions that you make are licensed under the same terms. In order for us to be able to accept your contributions, we will need explicit confirmation from you that you are able and willing to provide them under these terms, and the mechanism we use to do this is called a Developer's Certificate of Origin (DCO). This is very similar to the process used by the Linux kernel, Samba, and many other major open source projects.

To participate under these terms, all that you must do is include a line like the following as the last line of the commit message for each commit in your contribution:

Signed-Off-By: Random J. Developer <random@developer.example.org>

The simplest way to accomplish this is to add -s or --signoff to your git commit command.

You must use your real name (sorry, no pseudonyms, and no anonymous contributions).

Steps

  • Create an Issue, select 'Feature Request', and explain the proposed change.
  • Follow the guidelines in the issue template presented to you.
  • Submit the Issue.
  • Submit a Pull Request and link it to the Issue by including "#" in the Pull Request summary.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

memray-1.13.0.tar.gz (1.1 MB view details)

Uploaded Source

Built Distributions

memray-1.13.0-cp312-cp312-musllinux_1_1_x86_64.whl (6.3 MB view details)

Uploaded CPython 3.12 musllinux: musl 1.1+ x86-64

memray-1.13.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (8.4 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

memray-1.13.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (8.1 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ i686

memray-1.13.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (8.0 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARM64

memray-1.13.0-cp312-cp312-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (6.4 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.12+ x86-64

memray-1.13.0-cp312-cp312-macosx_11_0_arm64.whl (897.2 kB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

memray-1.13.0-cp312-cp312-macosx_10_14_x86_64.whl (938.0 kB view details)

Uploaded CPython 3.12 macOS 10.14+ x86-64

memray-1.13.0-cp311-cp311-musllinux_1_1_x86_64.whl (6.3 MB view details)

Uploaded CPython 3.11 musllinux: musl 1.1+ x86-64

memray-1.13.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (8.4 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

memray-1.13.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (8.1 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ i686

memray-1.13.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (8.0 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

memray-1.13.0-cp311-cp311-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (6.4 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.12+ x86-64

memray-1.13.0-cp311-cp311-macosx_11_0_arm64.whl (899.9 kB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

memray-1.13.0-cp311-cp311-macosx_10_14_x86_64.whl (943.5 kB view details)

Uploaded CPython 3.11 macOS 10.14+ x86-64

memray-1.13.0-cp310-cp310-musllinux_1_1_x86_64.whl (6.3 MB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

memray-1.13.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (7.9 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

memray-1.13.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (6.3 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.12+ x86-64

memray-1.13.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl (6.4 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.12+ i686

memray-1.13.0-cp310-cp310-macosx_11_0_arm64.whl (897.2 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

memray-1.13.0-cp310-cp310-macosx_10_14_x86_64.whl (938.2 kB view details)

Uploaded CPython 3.10 macOS 10.14+ x86-64

memray-1.13.0-cp39-cp39-musllinux_1_1_x86_64.whl (6.3 MB view details)

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

memray-1.13.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (7.9 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

memray-1.13.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (6.3 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.12+ x86-64

memray-1.13.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl (6.4 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.12+ i686

memray-1.13.0-cp39-cp39-macosx_11_0_arm64.whl (898.2 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

memray-1.13.0-cp39-cp39-macosx_10_14_x86_64.whl (939.1 kB view details)

Uploaded CPython 3.9 macOS 10.14+ x86-64

memray-1.13.0-cp38-cp38-musllinux_1_1_x86_64.whl (6.3 MB view details)

Uploaded CPython 3.8 musllinux: musl 1.1+ x86-64

memray-1.13.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (8.0 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

memray-1.13.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (6.4 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

memray-1.13.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl (6.4 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ i686

memray-1.13.0-cp38-cp38-macosx_11_0_arm64.whl (915.2 kB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

memray-1.13.0-cp38-cp38-macosx_10_14_x86_64.whl (957.1 kB view details)

Uploaded CPython 3.8 macOS 10.14+ x86-64

memray-1.13.0-cp37-cp37m-musllinux_1_1_x86_64.whl (6.3 MB view details)

Uploaded CPython 3.7m musllinux: musl 1.1+ x86-64

memray-1.13.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (7.9 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ARM64

memray-1.13.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (6.4 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.12+ x86-64

memray-1.13.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl (6.4 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.12+ i686

File details

Details for the file memray-1.13.0.tar.gz.

File metadata

  • Download URL: memray-1.13.0.tar.gz
  • Upload date:
  • Size: 1.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for memray-1.13.0.tar.gz
Algorithm Hash digest
SHA256 ed0b1860e79063cccdb7af14440f56579fd4add91cf5088cedd43ff5c51ee6cc
MD5 dfacb88d84e81a5411cc91c70e0299ba
BLAKE2b-256 cd2d5f5068bebafaafe3b9cef8930ab1546a940f9568202394ac6295b2c03509

See more details on using hashes here.

Provenance

File details

Details for the file memray-1.13.0-cp312-cp312-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for memray-1.13.0-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 045e6cebd20d9e3d7273e0f4ce5492d8351dc7466c18831a99a5ef873f05092c
MD5 2bc1b7e5f06e55f7d58f69fd0b875209
BLAKE2b-256 be6ad6c79da36f902ac468a76253f1587503626efbe13c474f4c0ed30828039a

See more details on using hashes here.

Provenance

File details

Details for the file memray-1.13.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for memray-1.13.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 005304ec9a2c73e8654e4fb909a244bf279a8e5ce7526b251941aebb6bb8abae
MD5 9b6a28e36057cc868270131ebd212fb3
BLAKE2b-256 0619071188cc5b2da4e329fd2ee1d3909f9b9bd61289fd7d76778574aae5fcef

See more details on using hashes here.

Provenance

File details

Details for the file memray-1.13.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for memray-1.13.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 49c24338ef0130130991f2fc17e5e1dd117b94677aadaf8bd0de48cedfa8a7db
MD5 871b10df71f41f0d919355828e929b0a
BLAKE2b-256 09b39727abe15294237fbd32fffd5a683f65a251e21d1bf05b7e442935c14cdc

See more details on using hashes here.

Provenance

File details

Details for the file memray-1.13.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for memray-1.13.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b3ebc70249826c77bc5b1688870ef1e070f4c6745af4523e55438c26db6bd748
MD5 3b5ecc24597a5cc936b8d8a270ac3a77
BLAKE2b-256 e059f001d56b0658113aee8a9205f48a3060de7c7f00c53c741ac9aaa25bb3bf

See more details on using hashes here.

Provenance

File details

Details for the file memray-1.13.0-cp312-cp312-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for memray-1.13.0-cp312-cp312-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 98d3911004eb3291d44ded5c211471db4d2ada066d9bc684ef1a403a011dccf4
MD5 c244bfd50186fd5ba2ce0622824dab33
BLAKE2b-256 8befc182ea0dead1e87b5418b4ca1d8adc5c0d125c361ecb04eaadeb2a4cf6cb

See more details on using hashes here.

Provenance

File details

Details for the file memray-1.13.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for memray-1.13.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 28bfdc1f37fe4f753dca4d9984bc144e0658c5b59c4d0c4f80abca1491422c02
MD5 30b89e9ec6d325db93c021da573094aa
BLAKE2b-256 e2875b8529d8e4ad780d652dcc8cd21d97a93045c4a35c5d4c5cb194200b6d65

See more details on using hashes here.

Provenance

File details

Details for the file memray-1.13.0-cp312-cp312-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for memray-1.13.0-cp312-cp312-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 3232f09f46b5703b074d598fc00b4c296d7eea43c542bc608fa63199cdbde05b
MD5 558606455f67935bbc49ef0ced50d174
BLAKE2b-256 2eab00e48ad09ad8ab28bfcb89be04565165423e873480904d90913f964f9bfd

See more details on using hashes here.

Provenance

File details

Details for the file memray-1.13.0-cp311-cp311-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for memray-1.13.0-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 ffaf882300a019911b0c77f5b8e341f43969b41021f65c699ddffeaa5a3c50bd
MD5 e9deb75deac85335235cfd197829a4e2
BLAKE2b-256 d0487a988d73478c02fce444d3a2c44c46a303b836fabcc40f18521ac78f9cb6

See more details on using hashes here.

Provenance

File details

Details for the file memray-1.13.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for memray-1.13.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c93bf815fdb8bde756378954cff2c23c84194bef17a2669a9584e68710ef9dd8
MD5 b4f9b0a6c77ff332aeae0f532b61ec06
BLAKE2b-256 b110bd4269c2d6e0000a1994786e5a96ad2f63f63344ee51105be352ebebb4c4

See more details on using hashes here.

Provenance

File details

Details for the file memray-1.13.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for memray-1.13.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 a67e55cee650ecd527e2995b20e8968365f08d1d7167aa42ea4d1cb3388ea34a
MD5 c15f46036f5dc2ff03897014eeed59f0
BLAKE2b-256 49552573e32252c4933f0e375f75af43b4cb301a9a0c994ad89ea54a3dc5531f

See more details on using hashes here.

Provenance

File details

Details for the file memray-1.13.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for memray-1.13.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 02c2f76ccd2278b355afdd82f49568da0552dc70009dcecd16a3e13a606c2a8c
MD5 a74103c64869714aedcb31d10a95e7d8
BLAKE2b-256 a08001d4e9076a39a5b1c19a77692d0ccea4591fe6481435881bc08c45ddeb06

See more details on using hashes here.

Provenance

File details

Details for the file memray-1.13.0-cp311-cp311-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for memray-1.13.0-cp311-cp311-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 66e227d9c5776760ad07ae70d177acbc68894830a798190b44e84ac09342154f
MD5 93178b3d75e6e33a83f6411b82ebcb27
BLAKE2b-256 4f3cf826716681f54c8e4855e05b1515a522112c4e76e71ca07a5bf0fd3bcdf1

See more details on using hashes here.

Provenance

File details

Details for the file memray-1.13.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for memray-1.13.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 81eb1779e7b67b1cf812c24f435bb993a23bf10702764ba2c05b8413f03beabd
MD5 762ac038f154361fb41b07f6908e321a
BLAKE2b-256 2190e7957b51d0a95e3357deb80c8a519f1bb5fa6e22f5999844a0008596e56f

See more details on using hashes here.

Provenance

File details

Details for the file memray-1.13.0-cp311-cp311-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for memray-1.13.0-cp311-cp311-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 6eeb66533260394f12d1c21544af4f590635bac69645bfdcc877dc4e539b2dab
MD5 90babb545bcdb9ac8cb200955ba35a7a
BLAKE2b-256 7b57f6929065b6d9093f45748d4b6b6e807c8bca5a0e8af9fbfcc1791a30a114

See more details on using hashes here.

Provenance

File details

Details for the file memray-1.13.0-cp310-cp310-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for memray-1.13.0-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 9faa6f888cb61c24f146a8bbff02638c12339abce8dfb6d007dd5d667d07f319
MD5 1280eb3a0788c5917201a683e0564830
BLAKE2b-256 9de5ce7de8aa43813a67833db08539a9dab60cefe4337089aa8f84a0bcca93a6

See more details on using hashes here.

Provenance

File details

Details for the file memray-1.13.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for memray-1.13.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 fd23cfbbf005b0bdb083e5d8828746be9427f80090cb335da6d1eec4eaf8c1f5
MD5 68b7b191e2794b8e1c295093c066d86f
BLAKE2b-256 fab9fe9d8c604c0e164d84bacad085a68ad09d88a50916e88e7289d7c3355be3

See more details on using hashes here.

Provenance

File details

Details for the file memray-1.13.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for memray-1.13.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 6d65b091c6d03a275626c794ff10856fe1ba575d74a8c1c927dfc763dba8d866
MD5 a8e53f13b3bd0a869784f8e397921d9a
BLAKE2b-256 5f5cfb4882fe2863badbaa8abed3579332839abb08f79f2910329e6a4287bdb2

See more details on using hashes here.

Provenance

File details

Details for the file memray-1.13.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for memray-1.13.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 7417a640ea9ff7b19069869ba05c897a9ff401e54891135386f0657c7d4b3623
MD5 cb3df89b47bff4adde59da8fd323c833
BLAKE2b-256 0cfa2e9231daea6fa3fbf93889f39248161b3cc2dc0a9cb28fac0c0f95e310cb

See more details on using hashes here.

Provenance

File details

Details for the file memray-1.13.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for memray-1.13.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 06cd2c48b42970196252ef3a41c4de0ba46799a699049a1cee8e455579c268d9
MD5 54debed710514ca808f5a955c6448082
BLAKE2b-256 18df4a0009571dd4c2eafe219de3ff0c7f306ef52e8aad4b4526b8b7d12aeded

See more details on using hashes here.

Provenance

File details

Details for the file memray-1.13.0-cp310-cp310-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for memray-1.13.0-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 49846666a01cf73425fef58a0830515398f5ce5e1425ac4aaf207adf08141ff4
MD5 01cd33ff31cbe4616b5085006267010d
BLAKE2b-256 d144725d360ac9eeb00f4e4c2f853e50aae62c8ec9364e05ad90279a9a083743

See more details on using hashes here.

Provenance

File details

Details for the file memray-1.13.0-cp39-cp39-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for memray-1.13.0-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 35b9e5706f36f95d15b4f6fe2cc683bc6f1d869c242dee039ac8994ebc061481
MD5 b53c444069ccb6623659b494cc42a180
BLAKE2b-256 81878bee0e16a1547a3cb23544175524627d89ec1b09d80c664c49c86624e447

See more details on using hashes here.

Provenance

File details

Details for the file memray-1.13.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for memray-1.13.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e33609fb6718f270b641135ab541f6cbb168cc2a5dbb7559b57db3294d57845f
MD5 4b182b63a9cbf67297a80cd2984b5de9
BLAKE2b-256 526eb990bad366eeb68d75ef5f04905a20f89c149fc2dee7f17972f2f707d477

See more details on using hashes here.

Provenance

File details

Details for the file memray-1.13.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for memray-1.13.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 8abe4304106800148e820edadd48d3b14b0b0c02211e3e20d82fb30abfc7d1d1
MD5 8f790d44eddd8ffc6ab775b9b6f5ac59
BLAKE2b-256 a633c112c2bbcffc14218f615171c07090729478548a8e140ac93213cd9b9809

See more details on using hashes here.

Provenance

File details

Details for the file memray-1.13.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for memray-1.13.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 f7faa03572c84b1f478f0158f5d03a4dccbfa1089b3f5e39e4298294055c1a44
MD5 81f9eb550be7ce0e884e863f8726b5e0
BLAKE2b-256 60e15228cd7f6d2376da5fbf1dd980848ec31d246e76906d2a91efa44a550232

See more details on using hashes here.

Provenance

File details

Details for the file memray-1.13.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for memray-1.13.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2cd6e07db692b170889ce7d16b819fc4fe702e6d61c0724eb729c490fe4d02db
MD5 ce9fe34fa41f7d6c079d1a88e5fadbc5
BLAKE2b-256 01013df47e81045dc15885139b01c4c8a750cc0a9a79d06b6848adf4dea7c801

See more details on using hashes here.

Provenance

File details

Details for the file memray-1.13.0-cp39-cp39-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for memray-1.13.0-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 85595a21af5025b3ddc9004e4c90c78beb6cd09d15b64786634a84807c4ef550
MD5 5532a4b749ff307531f73fc53f92212d
BLAKE2b-256 aea93e6a743d9e6a43603e9797a38c0a2e3bf629f1504ef7513f4f117322c4ba

See more details on using hashes here.

Provenance

File details

Details for the file memray-1.13.0-cp38-cp38-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for memray-1.13.0-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 cb16159cc77852113a49e227650e4e3fbec260803bbf12197880e20651576d79
MD5 2f2acee5bd17de2f57ddc08845d52cc2
BLAKE2b-256 ad7f8ddf5bf3cc7aaa413139f511a7c5a529de1d82408695170db1c0c2252dde

See more details on using hashes here.

Provenance

File details

Details for the file memray-1.13.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for memray-1.13.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b25de41572c7872d8fab19b24582a455ba2ca15a6a02e1b8486a5682e99e5283
MD5 990f0128878bfcf5813d63f6be331ab7
BLAKE2b-256 4f8e0d75a3fd1629b54b8948e90390ab31425b49d22b275a0dac6ddd4ec61dd2

See more details on using hashes here.

Provenance

File details

Details for the file memray-1.13.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for memray-1.13.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 a522c4a719106cd402c65446f14ac8264e5355adb598c70ab7f6748a6d67c45d
MD5 f5d69e30f8cea70d3cfc81a099dbf2be
BLAKE2b-256 bb96f2c64a40d95c50170b19711d32c776a4780996cb4e4533d72203e321a843

See more details on using hashes here.

Provenance

File details

Details for the file memray-1.13.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for memray-1.13.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 f94fd24c05441fa62152fb0e5fe7987923f900b09c639b8f1e51a7c11217d569
MD5 bdafa41c98bee81cded4c2170333b18c
BLAKE2b-256 656ec7e78e00fbf034a105ab717ad97af4530321cb5713febf92667de047b8fb

See more details on using hashes here.

Provenance

File details

Details for the file memray-1.13.0-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for memray-1.13.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e680ae4b29cdd5cac30cac124ce3bf2afcaf36ffb71332c6816f88f2403c1a82
MD5 7f679e676a79dc97ea7d1971a598b1e3
BLAKE2b-256 df6e8077e70615f3ef1c93283454613d12b28bd00f5e9b0b7e30d692b38b6ecc

See more details on using hashes here.

Provenance

File details

Details for the file memray-1.13.0-cp38-cp38-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for memray-1.13.0-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 2ec93b3327480c447007cec46fc7549f62dcbe793a8429da6f92083da2e8720e
MD5 da369bdd6bae335f017bea113a69f8fa
BLAKE2b-256 ab109fa7e3097b3f7165c81468c8a91cffa765b56c4e070ddb8fa106cdb7f51e

See more details on using hashes here.

Provenance

File details

Details for the file memray-1.13.0-cp37-cp37m-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for memray-1.13.0-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 f4a8e28c8f624745c712d2b8dca24a31bc6f460e55f1ff3da4e5458199f7efb3
MD5 ca2d78f9042e3b4632cded66d9619b2d
BLAKE2b-256 dfe2cd5a22b90c8b546cf6e4f7de2de3ebd125ef26c51c2f61fac5788aeb3a28

See more details on using hashes here.

Provenance

File details

Details for the file memray-1.13.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for memray-1.13.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3e9c80c573c156185b362c14559403615419baf2f822518cdd34a7ccfd258043
MD5 ff43f36d7d831c92bd471f2b8ff8b079
BLAKE2b-256 f39c6a9abe5ac126b7953d34138db913428908ce34e5a5cd1cc66917385097e5

See more details on using hashes here.

Provenance

File details

Details for the file memray-1.13.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for memray-1.13.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 63b0abbac7a2be9b46e3436fc6fdd346a9678eb6f657559f6713533f67cd8bb7
MD5 4b16a9b4a196ca884a9a675d2c5a8e84
BLAKE2b-256 ff1418b8c5d9bcc5ce0e12fb36f385ff2eb546778ed28909cced901fc3b5ef9d

See more details on using hashes here.

Provenance

File details

Details for the file memray-1.13.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for memray-1.13.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 1275f2e1e6e4d5630972fa5cedc14f51173bbf856040a982a5efcc865e0541b5
MD5 33acc8179b0a7d7119eefbdbf8cdba61
BLAKE2b-256 19df9acc609691e78c1acd52fa3a0b8cfc6383b7d579a1d1e2b382e78211e303

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page