Skip to main content

A memory profiler for Python applications

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:

  • libunwind (for Linux)
  • liblz4

Check your package manager on how to install these dependencies (for example apt-get install 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

The sorted column is highlighted with < > characters around the title.

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 left and right arrow keys.

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.9.1.tar.gz (1.0 MB view details)

Uploaded Source

Built Distributions

memray-1.9.1-cp312-cp312-musllinux_1_1_x86_64.whl (3.9 MB view details)

Uploaded CPython 3.12 musllinux: musl 1.1+ x86-64

memray-1.9.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

memray-1.9.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (4.8 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ i686

memray-1.9.1-cp312-cp312-macosx_11_0_arm64.whl (879.1 kB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

memray-1.9.1-cp312-cp312-macosx_10_14_x86_64.whl (851.2 kB view details)

Uploaded CPython 3.12 macOS 10.14+ x86-64

memray-1.9.1-cp311-cp311-musllinux_1_1_x86_64.whl (3.9 MB view details)

Uploaded CPython 3.11 musllinux: musl 1.1+ x86-64

memray-1.9.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

memray-1.9.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (4.9 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ i686

memray-1.9.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.9 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

memray-1.9.1-cp311-cp311-macosx_11_0_arm64.whl (885.1 kB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

memray-1.9.1-cp311-cp311-macosx_10_14_x86_64.whl (857.4 kB view details)

Uploaded CPython 3.11 macOS 10.14+ x86-64

memray-1.9.1-cp310-cp310-musllinux_1_1_x86_64.whl (3.9 MB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

memray-1.9.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.8 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

memray-1.9.1-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.12+ x86-64

memray-1.9.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl (3.5 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.12+ i686

memray-1.9.1-cp310-cp310-macosx_11_0_arm64.whl (882.8 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

memray-1.9.1-cp310-cp310-macosx_10_14_x86_64.whl (852.6 kB view details)

Uploaded CPython 3.10 macOS 10.14+ x86-64

memray-1.9.1-cp39-cp39-musllinux_1_1_x86_64.whl (3.9 MB view details)

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

memray-1.9.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.8 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

memray-1.9.1-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.12+ x86-64

memray-1.9.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl (3.5 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.12+ i686

memray-1.9.1-cp39-cp39-macosx_11_0_arm64.whl (883.8 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

memray-1.9.1-cp39-cp39-macosx_10_14_x86_64.whl (853.7 kB view details)

Uploaded CPython 3.9 macOS 10.14+ x86-64

memray-1.9.1-cp38-cp38-musllinux_1_1_x86_64.whl (3.9 MB view details)

Uploaded CPython 3.8 musllinux: musl 1.1+ x86-64

memray-1.9.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.9 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

memray-1.9.1-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

memray-1.9.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl (3.5 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ i686

memray-1.9.1-cp38-cp38-macosx_11_0_arm64.whl (903.7 kB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

memray-1.9.1-cp38-cp38-macosx_10_14_x86_64.whl (875.8 kB view details)

Uploaded CPython 3.8 macOS 10.14+ x86-64

memray-1.9.1-cp37-cp37m-musllinux_1_1_x86_64.whl (4.0 MB view details)

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

memray-1.9.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.8 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ARM64

memray-1.9.1-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (3.5 MB view details)

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

memray-1.9.1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl (3.5 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.12+ i686

File details

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

File metadata

  • Download URL: memray-1.9.1.tar.gz
  • Upload date:
  • Size: 1.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for memray-1.9.1.tar.gz
Algorithm Hash digest
SHA256 d676ae40ef8ae9c41bf3a27f5fa89c1e9f80d9ba8e9f7e1e7073b5f90b3f265b
MD5 20243bbcf00ebe80c81f6356a59b928b
BLAKE2b-256 903c2087d93cd64eccd5063ddd1c19131333fc144d810aa437713e8a6724348d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.1-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 04724ab90e9614df0efbf8ef90a15f46e2b8bd2dfbed887eff8e3de9953621a3
MD5 e5aab330e755051d436a7a1728eb8c44
BLAKE2b-256 422c344bfdae2dcd2f22cd85c28a637f1b8796ec7b8e92f6bb61bdc7b8ab1776

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 06f9c6ff1ff6fe577f6168fff9b3afa6221fd5dfdcac42e99d504131765a28a2
MD5 94f20094f18bf52065439f88971aabf6
BLAKE2b-256 9cba383fffd087ddbe2ddd76d06f8aa168d28d99f3ffdbe118e4922f50c45928

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 010cc51f2f6cb18f4aee52eb36de5d8c361e792a181cb7026add2fe78f32dd77
MD5 ea62136902351a45cdb228288abaca0e
BLAKE2b-256 50a4120c366c614d65d463af38fc0b49056196040bcf5253d5c0428ba760515d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a92b0d3bf7ef3106653d8b803675dc92a3fc0fd4d1e9bd8f219890bd195bf8af
MD5 e66582cfe97259151ea22b0a4016f6a6
BLAKE2b-256 18e468a4af4ddd37a90df31237cdb851f66d5cd913d6420e10513428a09cf4bc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.1-cp312-cp312-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 7efaa1da4c768e14423eb89391aa597f3be1b38f91fe0da7b10d38e332e546c6
MD5 7fb2d462e0c1fbed7b7dc5af927068ff
BLAKE2b-256 55ec2fa755ff180e89610e50ae46f8fc87de104e20f5fbbfe85f6be4f4a87039

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.1-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 c602969b1e6dc9502a6911b721536a0209423e798b6cdc690fa0f5b8de02653c
MD5 973cb75b8afc59a57a0a535fd8a312e9
BLAKE2b-256 50411fbc08aa266069ca3a762b6df951a1586527532d2c49788cbe22851ece82

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b80f09e178edbc0de6d41d55592ec209936cccb611638b3e7da2c45693433e2b
MD5 9358b569f4c7512559cd02b36fffcfa3
BLAKE2b-256 705befcbfb35b2141eb20dbb06055f1ed059da0e5d5bf828fc9a926b046d7ebf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 3b3c634dac856f5e5d899a944509116f53c36638559f43dda6255333068274b8
MD5 ad6c22cb4c8fce471fc36621936c3c8e
BLAKE2b-256 a79905aeda7731f1d78cd945f50713eec2e51a9b68b1ac50a58547ad55484ade

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 6512866eb49cea99fd0915d8c86d21cad4bf40050092a986e32c2c8c4d6e0d8f
MD5 3c3913ccc90d63479052d3008b92d8fc
BLAKE2b-256 a08431ff773d6c36baeb232093fdb812d1d75ca933b98398cd345a03a5255e97

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7af9677277d62b1c59ce8e3d493a9f95f1eea1cb6ac362de1b1faad7bfbb18de
MD5 6a04506844e7592af194eed9d3473c1c
BLAKE2b-256 ae122267f838c563b14a5d50a0463b594e29d8018649a68ef0881dd0e6fbb911

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.1-cp311-cp311-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 1fad0e170264f6f71b7ed83843f896a7a9a4efe5684aa40fe48892dc546c5017
MD5 9e0a1dea202ce7ef2b326a943351a549
BLAKE2b-256 2ff9a97891d82a533675e75bcf7882021ab1e5a48c3762e11c545d572b1d4367

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.1-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 939270ede80b6c2e0e56dd75edb6a97b44a80bad977c81c68f32fdb3200ff2d5
MD5 b212aee606a3c8d963caa62b313b2b5a
BLAKE2b-256 7b148a8032880baeae5826572033242fffa5eda50b2ac1f2c446b9c9c8f53a99

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a773c0e0a28be72e4df8dbb00cfc0cff40f992fa413e078b861bf0740910c958
MD5 a00baa31863a80c567e9199cd59ec3b0
BLAKE2b-256 b797791005abb4e4daad54f35585465a4743fee165b9bf3b2d4688b8e549d5d6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.1-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 3837aed792d90e90743448feae98c3a8a3b4da389aab49c359c9014dfdb8bff9
MD5 e6a5f27ee70bad556eb40f745bec105e
BLAKE2b-256 94f5e06a1b672615560823fa94e60d1592b86ce326acc10ba3803694d7e97d93

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 bf96d09c7c160ce2c05fa3a077da2563b299985e0542833b70f8b19350df5df8
MD5 6412362fd767360255a610bc75df02d3
BLAKE2b-256 651e04f85a31df8b22b27feb29c64d5ebbc573124ecb23948e54c0b191412e02

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 152d4b6b501a83a4cdafe5bd757a0940ebc5ac2b2b091f6f7c306ac9a8209da5
MD5 32070ba7aa0bb38db08fc4b1d2e440c9
BLAKE2b-256 04f1e79ad1806f4c72463584c8581b8635048e025c590d6fc0f254df6a35d19e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.1-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 aae3c2b79b4814183ce60e1b6abedc5f56969dcab3f0a8f00d91f9964ae72727
MD5 9fd23078e03146e124076df7ffae37d3
BLAKE2b-256 bf9af21a68304dadc4815c216b7041e768fa101b7ec9e04cc6feecfb8ede7949

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.1-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 a8a56e6bc88037c99e899697f312540171042e097e5d2f5688fccaa6bc9008d4
MD5 dfc309cbe9fe1e449a2b10327a1e3a27
BLAKE2b-256 9bf9c4e767143ebbc9480fbf36b00a0b7c1a5910454250da72385bfee7c0d710

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 320ff2aca8e12001563a5895f40349a1a16751e56c168e84f8f76274e591cf42
MD5 b7e53468048a7083eda16cb904070929
BLAKE2b-256 5be5175ab00a73acc4c1f5ccda3ab55eb868348cbbc158c7b171eaef1afe197a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.1-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 aab379c26255bdb4e1d455620f8b8ace1c4e9a91f51de176bfcf9b09e357a7ea
MD5 039d8d8905c17ea1d0ead89bd092ec08
BLAKE2b-256 8a9b698fe55f4e3c87bea1d00cc75a45225a860f07fd53c46d6deaeb7037a2a6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 f81dede3d702f4d2030f7985caad145f5ff7f33eddc31b09caa49b42071ba275
MD5 3a98c207c067f1287e4afe618d75f77e
BLAKE2b-256 9f7f98b045ef71429c5fa8cc9ef99b19dabfd291fb36a075a9dc63aaa03cd516

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c37d2d34b0426051f98597a3732167e3f82e9d37251a1cd73c23b7384e4f842c
MD5 7487a7ff94eefa49481ed241c7efae54
BLAKE2b-256 13845b046177f0747596b990b1e22b91900328992b33a358ffba64e40a35e916

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.1-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 0e9532a9046554fa1b5166c4a02c54d35775e745a0a895e33c5b3ce6288116d3
MD5 ba0dec68060f6d08a3a468488889fbad
BLAKE2b-256 8506e43b3078cf2cfdd4c3b50e3c41895b5de5471ac2505347e6f455971e01f8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.1-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 3015a28fe6e8cf1d0cd741085da58cc0091ed895161ecacc6a159c14af7a5a35
MD5 b2dac8c95f20581e0eecc6d6213f2ce6
BLAKE2b-256 900abc2e5bb1f7e25c574d21512ac07e38f7a5510959d63c3600c11a0a96c4fa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4a3ce139c103435c3e366ea515d4081a3144a48cf3aae4a5c7bcf2ca7bd35285
MD5 ecb140d844f6f7e8844a032546d1f259
BLAKE2b-256 2a91807af47ae12c65ab6a56825f168246b1f2779fbeb3d7bbb2b81f33fed4f5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.1-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 9ac8f6e249395b24b7f7773b791e9686557216f5f12c4cbe97d0e0c8b0494d7e
MD5 52cf10c385d86e0b8e79aec1fedc451e
BLAKE2b-256 195009a37b9fd3e1176c03fde9091cfaa00b41cb264f16f2e51caea6c6b0291e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 f647168ee77af4c447ff73e2584a2e3f3d8e13655aa6c0d33f02fa19947d5cc3
MD5 6c9a3a5b1d285e59840985c2d56380d7
BLAKE2b-256 fb996a92fb2872871b81d25d2923a2d9376a3f4f1f2a0d0a6f3784b46411b30e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.1-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 facfee26da17dfcfbb0b62ff2b7041169ad6017c9747e762d7a7e17725e55124
MD5 6704936de30673e2f5b9670d93708bf7
BLAKE2b-256 60be9a2d62fd7993b5320f43417feb5d815aae32a55ea903c171b5a05df9da2e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.1-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 caec236f873b097eeacc192d20f6fc0490988f37176ea27f0bdf697331353b3b
MD5 a63859e8f6b80d9530e392a6353719c3
BLAKE2b-256 dc8dd31838a1bb0ff802845ccff335ef76209a30a0578e5d22d94df28f9fc70e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.1-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 16dcd1ddb01826dbbacc91fd6b3b01791263e60bde91901d60e48364480aa127
MD5 ac1c93473b64a4291f7cd373e79fecda
BLAKE2b-256 201431d08b9813058d079d36af0d3fcc3d79c1d0f54f104e482634f3e4fc7d90

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3aed29f34bac1a1a6b5ea47700123b3fc2cee2c9c21fe7bc245edcf704d556fd
MD5 f8cc0560edcb4294eb477cabb93bd400
BLAKE2b-256 9d027a2482018d05b36d54c3b184e973ddd63466cdc5e29a04db97b14b7f582d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.1-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 a47a39af7ea6960a54a80069bc912b6879046f6e8310d46d6286568c76aea50a
MD5 c867ba46ab09776d24c382912f84cbe0
BLAKE2b-256 5d23aceb41cbcd930f1ebf5f6ba01b52a51625161894846d99e2f2da53c5478c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 c2a0a4b6d48f7a6ac18ba475a1deaba3f1c237ee37547a34680ee449c393aacc
MD5 12ac5020d767c92dc0c56d4e5535df93
BLAKE2b-256 0cf7d69578fee08f532fe5331b5e7f875d904a83d8c35ee7222853d88bbeb199

See more details on using hashes here.

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