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:

  • 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.4.tar.gz (1.1 MB view details)

Uploaded Source

Built Distributions

memray-1.13.4-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.4-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.4-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.4-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.4-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.4-cp312-cp312-macosx_11_0_arm64.whl (897.4 kB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

memray-1.13.4-cp312-cp312-macosx_10_14_x86_64.whl (926.4 kB view details)

Uploaded CPython 3.12 macOS 10.14+ x86-64

memray-1.13.4-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.4-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.4-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (8.2 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ i686

memray-1.13.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (8.1 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

memray-1.13.4-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.4-cp311-cp311-macosx_11_0_arm64.whl (900.1 kB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

memray-1.13.4-cp311-cp311-macosx_10_14_x86_64.whl (926.0 kB view details)

Uploaded CPython 3.11 macOS 10.14+ x86-64

memray-1.13.4-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.4-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.4-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (6.4 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.12+ x86-64

memray-1.13.4-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.4-cp310-cp310-macosx_11_0_arm64.whl (897.4 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

memray-1.13.4-cp310-cp310-macosx_10_14_x86_64.whl (921.9 kB view details)

Uploaded CPython 3.10 macOS 10.14+ x86-64

memray-1.13.4-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.4-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.4-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (6.4 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.12+ x86-64

memray-1.13.4-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.4-cp39-cp39-macosx_11_0_arm64.whl (898.5 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

memray-1.13.4-cp39-cp39-macosx_10_14_x86_64.whl (923.2 kB view details)

Uploaded CPython 3.9 macOS 10.14+ x86-64

memray-1.13.4-cp38-cp38-musllinux_1_1_x86_64.whl (6.4 MB view details)

Uploaded CPython 3.8 musllinux: musl 1.1+ x86-64

memray-1.13.4-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.4-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.4-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.4-cp38-cp38-macosx_11_0_arm64.whl (915.6 kB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

memray-1.13.4-cp38-cp38-macosx_10_14_x86_64.whl (944.4 kB view details)

Uploaded CPython 3.8 macOS 10.14+ x86-64

memray-1.13.4-cp37-cp37m-musllinux_1_1_x86_64.whl (6.4 MB view details)

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

memray-1.13.4-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.4-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.4-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl (6.5 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.12+ i686

File details

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

File metadata

  • Download URL: memray-1.13.4.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.4.tar.gz
Algorithm Hash digest
SHA256 48f8f9b89b3a84028668244151eb7248189fb3f4f2a761ec1211439adcbb2ad1
MD5 dd26cee2564d7a0790b76c168e3adce0
BLAKE2b-256 24c9f2e4a9d7288ad98d8d2c06cd3b9a4b829c6b93d33d022b0d2d1b66db0dc0

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.4-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 3bf06f8883a26b779cc828addad97a2d39d7587263e348655dae3ec90b6ee079
MD5 888e5c79995aea62d7cd01d2d6622e0d
BLAKE2b-256 835237c1b5f50496593306f4a85e48117d18c287120731938abf0b77d3538f01

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 523a63dee71cd4d55eddca866244a045e7549ca5137ec906c62893b87a2161ce
MD5 0a04e63d8c451f47025191457a0552ac
BLAKE2b-256 486c5638f09986582b834f55356fc6fe8df395cd01e4d2ea70a858e5c84635d3

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.4-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 bfdc070da2df9241f78b7429d44f6ee16e924d43eddc587f6ed7218c4cb792d3
MD5 b500133b5a36a5a8585903afb762d07f
BLAKE2b-256 08f8f5d9995c214a69713d35434fbff65646f493ff9b29f9840e4551f140721d

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f1f3ab803b703b9be29259039caf43803ad5abf37f04e77cd9e8373054dd91f6
MD5 ac49df1bf17305dfcbfff14b7bc23218
BLAKE2b-256 fbfaacf38614bc62b1cf3af1315636e73fbff79328d87be96de047c0d5dc91ee

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.4-cp312-cp312-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 d5b9e10fde6f652ea176cbc0d4d4c563d2831faec4434d3e03c4c0aff8ddc6c0
MD5 089cd3c0bc50f91c5084d1d3fc73f044
BLAKE2b-256 87871a600c1a9def7293315cad0f423ec33967a6ab386f833311b08ca3f9ac08

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.4-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 637651f5ca2870e9156f189c337e8c6d0002e3f6f7d44d6486ff5baf12a6115e
MD5 da263f65f2d0a57f00d3fb3228c97d6e
BLAKE2b-256 1c1dccf0f8b21ca1580228932f27d21a0be39869935bc6fa4db718b1c0277d89

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.4-cp312-cp312-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 b6459761046ab46638d2c62d7f3f55eaaf45a947bd1d36dcfb5e860047280557
MD5 09b833ffd10d6c260d146fcb85799358
BLAKE2b-256 bd939a3107eb8a0e7e80e27a4aed550a2827010116291c4baf333bc0a88c5b55

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.4-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 3d048da01dc138711a2c9c70ba693d186690c98fb0ca26fdc3483486d4849238
MD5 05da0ba53218eda4bce0be1f1fdedb93
BLAKE2b-256 2e30d46879d6d1dfdd3c69e710aa8b8aa728a5a8766953b504fd56b360f1c8e1

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e585d866c82ce92060fa1c925298aa8b89936ca22df9698a25a5f0cf7ca81fa2
MD5 3bb04f08e3da5b98f9cdcae04d2bcbea
BLAKE2b-256 a85ec71890503e3d0e43657a92dca46459e3a730fc61b96ff0177b04c6591d0a

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.4-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 81497e578017feb57a46e19c349450888e57ff7fb8f0f5134d3e07605c435500
MD5 f34791c846bfd7e68bc6bb6c7aa7aa68
BLAKE2b-256 3de83450f3167fc33c9a549adeded5244a2a62be7398a97a2e12d9688fa1f325

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d1e8cec70e51e81c0e9448e62a5366914b74a3dbb60826cdec8f0e7559e58e74
MD5 4adecf4008259111baec21574ac7406c
BLAKE2b-256 915a543dcb25720518c41463875115b03c0128d56a92fad93506c132b995f7c2

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.4-cp311-cp311-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 ba5bb9a3b7c3c08752f3b55a3b5b360963c9f666e2220eb388ab6f7d1271d843
MD5 27e68748fd51399b9b809acf5e9b0324
BLAKE2b-256 f4f8f4e86ffc0033ae7f70d646c8e34493499d0ab82babea693085e5bed4e4ae

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.4-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a6f1bd3d0adf84f864e24f74552c1533224e64283dfee33641011acf384fc138
MD5 c4e038a7b675d3c3d75715f10bf34c81
BLAKE2b-256 85ee383f8acd28e2322cfefb5c73b7ee579e58d0a9d67ee638b6223956606521

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.4-cp311-cp311-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 bf407123e175de4f5a7264886eb64ea514f4b388b617f05dfcd857d99ecadd1c
MD5 90c8fcc1627c81c11fe084a7e3094c2a
BLAKE2b-256 0709885c227e283815971a6564cd144598d0f258f1fbb9f15fe825456494cfec

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.4-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 3cae161d5b6769cc3af574cfa0c7ea77f98d6ae714ba5ec508f6f05b84800801
MD5 6184d7a175e175f9ee5602b8990619d0
BLAKE2b-256 be006b976b231c76ebd1ef2ea32fe513e5dade5f756a7933e7279e1e7071f4ac

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a437c7e28734028a2f43f942c3146e9737033718cea092ea910f6de3cf46221d
MD5 7d6b85214f9f977732e1fb2ad1bb8da9
BLAKE2b-256 da496a63e6fe882fd5384bdb91de42051ff90825e75f0de952c150cf588b1148

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.4-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 bac9d30ce39aaee40601087d09c1639a071293f414b5e726a152ed3581d25e50
MD5 b817a22400548a6d9d4703c1e5073a60
BLAKE2b-256 bd67b4b43c2899e5e342ce6caa8be5bb53331a07dc42a7a6320239fa7b199328

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.4-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 6c9ae675131492bdfafcc44e86d0b81401ea8d052a9cab7793b1dab642cd58e6
MD5 bc47f9ddecccac257fe06d30d94b639a
BLAKE2b-256 49977ec7714e7f8d2ce94e96cbbaa7e6b9302677c3ff0acaf0dbd5abe5baf8de

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.4-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fcf71802b2c6d68c5336b1e4ae341eab64dcccd0dcf67687af53f18bc020237b
MD5 8b90f9d9c2293aa6c2bb6a3e310afef8
BLAKE2b-256 7cff7a81bc89ddb2a74465bf6c4db6d5f4e0090f3e29bd9d20be3099731c8f14

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.4-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 ed0bfcffbd857cbf78a4db942019e9e153019b754048b0522065844d1c538e8c
MD5 b790da9fd0582b58c7607053479455ee
BLAKE2b-256 33d50769c5103905a6dc1f9c890cf7200d221cf150f972555f24f6ea0ac90a22

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.4-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 59bba975fbbced85fe6f61685aef459777faf3b8a5b4f0de4fa5b99cf6f1a5e7
MD5 4a25e7bd5db40eba9e82a78c7a3b6fae
BLAKE2b-256 57a7033324a668bccf25b3acdb15af3dfa63745ec6d74e40a3f90cae8fb1195c

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4cbaa39bf7041e32282ad84a9fd9bd98622f78f649ccb7d1075382fed84e8125
MD5 a218befbc4647b45c5d9aabb2b731a21
BLAKE2b-256 1bbddaad57d8dd4d12d140692dc896ff8fdb5331c92bf98928c01b27a3186b06

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.4-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 e0cc6299a09d3c51fd1a45bd816e9dd68a7092a3eaf62aeaa2ee01068f2a1d0b
MD5 c6f4052cdb20fec989e090f2a0ee89ff
BLAKE2b-256 f738be221244b670e126f984c28e94d838442166faca2aef955b96606f2268ff

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.4-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 f43bfa96114012d76025a0ee42206c7d914b6113c491dc221e1b7a901c51242a
MD5 07a5edf278dc3345459358222981f33d
BLAKE2b-256 9c1da84ab28978f90d38dcbe7adf863517895b67d269e8eeaa2c77c4cd35aee4

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.4-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b1331de55aab1c409ec295b155770487004e0c6d08db0fe903e9377be978bacd
MD5 1b8203dbafc3284761d0b16717a4aaa9
BLAKE2b-256 9cffd59770c02be906abb9b915620cd22406cbb53608069f361363f05db26187

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.4-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 f19fb4a20d796af869691531d2d6540d27bfbf0df9118bd17e547a23224a8b3e
MD5 4aa213c63894cb486896d3a6b70b26f5
BLAKE2b-256 f348d228e8f8cca7f695f831f8dac32e07ab58f968a9fccc2df510274118e193

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.4-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 2072a454846e055d5833d17b1f5e6106ae18e425974c3968276a1952b0156f2b
MD5 b9273a8f5d6d6d782e52f054b32c1c9d
BLAKE2b-256 77457ed3764eeb152b06ed390d0b3e62cae0742b2d0adbf4f1b0c992d6f33c60

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7096401ff3b7ce5f759e45bd71b0899ad50a607924ee23ad02423aa4fa505f52
MD5 0594421eeff9e3523a0ef864d8edce67
BLAKE2b-256 ff6a4f1ee8f1c8f71f63f5374a40db6bbe422d06471e256ca7e6d63b4ecb7559

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.4-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 22c9656c78a50b4569a8273d062cc6c139e9f7cfec3f793e60ef7e0cb46c2a76
MD5 4b86fc045630457f2ed28b3c2670cf11
BLAKE2b-256 9f5f2839abcc06b7308685b805acf889868c3885cfebe5b6db5c855c470acb0f

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.4-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 7c8ea410c842a31ee07e76b409c273d23e0b670d166c2330488d1164ab42a4d1
MD5 e4070684e4afd8efc0d62c8e8ed4d200
BLAKE2b-256 372a5305857902a0e00d10b8c48e354df054af1664649e2ce68221363a5c25b7

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.4-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5e8ef7cc755a5a3a4b5d9991cf70428220e9138bc5967b5764b2fa7a1fb4d7a6
MD5 e6e0abeb3ed07f184dfc3941708e896f
BLAKE2b-256 f936088976a4300447627057effd29483d42bb82be1f0b8046539033b3498685

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.4-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 e3e261995acc40f8bd4a10740b25f37eccc3e413449ceb73263216ec3c6fee7b
MD5 dd49444117d37745c231b3becca6966b
BLAKE2b-256 986b6700b085958690011d94cfc43aa50c79b38ed0158d9db7b3a9ab6b928453

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.4-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 554cda50101a14e1bca2453bd1013949cdc4ebcd4709065139955578f8b0c354
MD5 537422e11fa29025735cbf54c9b9a4dc
BLAKE2b-256 2bb52f2d3591b47fd79066aa5a2bcc37c116eac08bf9ad132bfafa1aa06240fb

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 cc194c5564f5b33d33bbbeca54b0e3f637d985a144c3551f887bf668d896ffec
MD5 055204354af1d001dae13ec2b1b5f0f8
BLAKE2b-256 c80084c4f6b4820cace25fdc174db9539954603abeacd8742456c91c1ab5de0c

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.4-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 daed9ae6ceea6a4dcc96ac62cfa00d90f7365ed54ee90886e5287251855a2c02
MD5 1402402fac9826d18055f7946bfc7fe6
BLAKE2b-256 a071ac4ecc9e014d2044312f01064357b12e9c3b72fba7d3d0b829711eb45b3d

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.4-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 ee47b798d5712faa2a38ff60b5c77f73ed8342709e15bd6ed3a46edd9feee089
MD5 f37d6d21c681eca4d3a5b26d19f90ed3
BLAKE2b-256 38484d5cf3da82ab6ac29e27a09666c81e9bd2e72a9efbf09df54e373ab07237

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