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

Uploaded Source

Built Distributions

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

Uploaded CPython 3.12 macOS 11.0+ ARM64

memray-1.13.3-cp312-cp312-macosx_10_14_x86_64.whl (926.2 kB view details)

Uploaded CPython 3.12 macOS 10.14+ x86-64

memray-1.13.3-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.3-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.3-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.3-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.3-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.3-cp311-cp311-macosx_11_0_arm64.whl (900.0 kB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

memray-1.13.3-cp311-cp311-macosx_10_14_x86_64.whl (925.8 kB view details)

Uploaded CPython 3.11 macOS 10.14+ x86-64

memray-1.13.3-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.3-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.3-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.3-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.3-cp310-cp310-macosx_11_0_arm64.whl (897.3 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

memray-1.13.3-cp310-cp310-macosx_10_14_x86_64.whl (921.8 kB view details)

Uploaded CPython 3.10 macOS 10.14+ x86-64

memray-1.13.3-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.3-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.3-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.3-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.3-cp39-cp39-macosx_11_0_arm64.whl (898.4 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

memray-1.13.3-cp39-cp39-macosx_10_14_x86_64.whl (923.1 kB view details)

Uploaded CPython 3.9 macOS 10.14+ x86-64

memray-1.13.3-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.3-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.3-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.3-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.3-cp38-cp38-macosx_11_0_arm64.whl (915.5 kB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

memray-1.13.3-cp38-cp38-macosx_10_14_x86_64.whl (944.0 kB view details)

Uploaded CPython 3.8 macOS 10.14+ x86-64

memray-1.13.3-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.3-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.3-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.3-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.3.tar.gz.

File metadata

  • Download URL: memray-1.13.3.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.3.tar.gz
Algorithm Hash digest
SHA256 3810a5dbafdf91d967255d6ee1ed82928bcbfaf56821eb8745cd630947140281
MD5 7f7b4b233c043df26c7e2a2b475fb223
BLAKE2b-256 5e7ff0b83b26c974a0f871fb5152ca5ba74569793843fd375edda5c70003e8ed

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.3-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 b1b5e5f33000fe454219f6d3ecc5179d3de667baf4de0438bba5524e7cee62c0
MD5 f2eb616a25e65192fbed3438422de6f2
BLAKE2b-256 d290e9097f92218166d8c6a10217952ae8d0a449d7109b821a6e8e40599b2340

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c5627ccca0b9b9fcc1a2596486f969d8505dcc7587c73d8b58710aff96ffe3b1
MD5 5a77ed0e9bfb36a8c81c1abe63e459d8
BLAKE2b-256 dd9f25a716b94ce35d14a131ae8d8303d4c1af93c40644d9ea16b416d876ab76

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.3-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 bd064c4bf3e58c872d597036c3c9d4cfd0e360e9b18c22a601864f484771ffd4
MD5 640a7d223f4a3bed5c8b04d7e746be47
BLAKE2b-256 c4c5d2ebdcebf8c9dd0071fb4b34be4720c5fcd35c1fe0f94159fcb00a039289

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 772139fbbe48d7a47946b0916ca7c1e20f2d4ae5112dc6e372cce7d997238d81
MD5 25d2ba2c717a6286a7e4da6c28aa49fe
BLAKE2b-256 b75cea274a1bd4361c10187265aaafa3abab5aca2522ec1383eb8fae6052f034

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.3-cp312-cp312-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 18fb9a6288fcdf054f9130eb94cf029bd69670b5cf961fd670ae02b8dad19331
MD5 ca00e468db0e87f8c4ed652eb23db075
BLAKE2b-256 23cfd07613826227a799d325b43c46da9b87383aaa90fcd4518c8f2b4363d9d8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fb77a2b05e22496657cff0692161b2494da69b83d250754377861c484b0f58a6
MD5 f89ba0867208609161e88f4192cc4f3c
BLAKE2b-256 baf25e6fd37a4b0f71af44a55051bba520b9cf95a4ea2c8c3ed45efbb29e116b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.3-cp312-cp312-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 7377760d9996e92a07bfa9ff4f1d9144c3bc64d144846363fe3b0a19594141f2
MD5 d687da931981a82ceb8885f974f4c43f
BLAKE2b-256 6edeea9d8c3789e7ce7c4683169a625132ebd15be3ed879978b01106d36e9113

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.3-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 348e06153a2a582019e07c2f773339d64fac6807a05e9c7569c3281215ce5ed4
MD5 f850f4f397bde9b4d7377d1167a4e831
BLAKE2b-256 3de9f7ce633333834ebd9a1b17f7a482fbd37a6c9e33beff2e13ce3b6ddeae3f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a61155b9b562ffd8485bf171fc656bdb44d429036f90d1739b5d13f9b8c2e50d
MD5 cfab1b1a3878b927c9aafd2c05bcc80e
BLAKE2b-256 e428a976a21e247a543c9aca56d6eee9ee0d06d8fc7e3d846f96b7c1e1807048

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.3-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 c031896590c9b2ec68dcbe05d2d32f4dba1757a46aaffa725a1505afdf956eae
MD5 06f38f2c4cb35875cdb75d2f9b78c91a
BLAKE2b-256 5d133d6f63b4191bafe52aee57ffcbe48e59b15ea4878bbe1cd5427dd38545ce

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 86f4ab3d99e3747da26a3ba18884db86ac231789133227a50a8925eceda75c1e
MD5 223f464d81261dfbf4b3e81386df1040
BLAKE2b-256 e4c61025e2776896ed4bd09d806380a7616edb976c5ca02fd329e42925cc073e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.3-cp311-cp311-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 d6673df94ddb3216b3ea35ece621e496fcbbaf886edddd2390d63f896a625f55
MD5 d6b1ea022efcfead0d78da40069af09c
BLAKE2b-256 b4d6433f37a4af098c8774a76bc770d12d467a5ec88763e1ee059150f891e1cb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 26849671728dfbd09c46cfe62e01acb51e6322bc33e3478143d91a5f6b19b6f8
MD5 d36c4a6db528269d51fdbb4c50c0f8ce
BLAKE2b-256 5ec99248744d6ac1c854df8284df95d4ca7fea316e14d0c489df69c0484709ce

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.3-cp311-cp311-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 3d1bbe9208ad5f73c1e327fbe7c42cce4b22a2c656f876944449f817a6f2645c
MD5 1a02602393348a625041de6f7b9483c0
BLAKE2b-256 516b794aa2672a81ed043673ca63fbe2b28fa7e21c8f15bbd3b448b9ef920a58

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.3-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 e4637da6a98ba546daccc5d033d82f67e8ee1d3e683e8c4d92c4dae94ccf57e9
MD5 e689a99619020f8d3d4c16294399db6e
BLAKE2b-256 1059449678daa5924f853ab306aeede57448f21b67deac8e8c7d62f7dee23e6f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c644b9408bec95cd66bc1184c46a5dfc084e5305f2b764213bef3438bc75bf63
MD5 ac53ef6d2b9b54a5f1964f9e3db85b97
BLAKE2b-256 9d0d829934eef16a43603b9d8f68825e31ed83d676bdd7109f52c20cf16cb2e8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.3-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 8f2856d392e60de240cd024843a4a7902644a2064562390196ad11b87f08e5ed
MD5 e4e847d63dfd51da677980a9d7fb9bd0
BLAKE2b-256 32fe049bd030687a802103dbbb0c51f0182ba254900813d2d092956db508182d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.3-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 bc5cdde5c0db11bb52ccffe0a155a4324db2d8ffe5a82d222cdc31eea09d927e
MD5 cdf07874f1650483a40155f898b4838a
BLAKE2b-256 587e9275f9239de6a5cfc559371b0495febb074338e7dc9e38376c3842a223f3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.3-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0b32061ef473c35feccf2b65771b3b803bd9f7c2b1c31499ce8dac892f6cb79b
MD5 d12b72ee036fef71676dd4e9df9b8c1f
BLAKE2b-256 7d47a668e46f418988fed551c0853f609098421ca3cdf0f1527b22411a70f584

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.3-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 47d2eb555d24e006cd6bac4390627ff227387a9e5cbc4257b08b2842ca202763
MD5 36162132108885f26c88f3f3feb1860f
BLAKE2b-256 65418bb58f51f401eb2b65f91034d1ad7a0e547b3081d38ef9deb8a5f91a6564

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.3-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 b50ee1121b300371a5686a10fb3ed1a3711fa4fadacb198140e537beb43f176e
MD5 66eaaeb9d6f00be8b1e0c654f9b13489
BLAKE2b-256 60613c3df9010ccd2d29d957063e4f2225b2606ed4b68843544caf633a2a5566

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 071c5b44ae52f583ba62af0a2cdaeea72a1c2c9513aba53873e32827becc4e1a
MD5 3b6c9069544c40780769a90e15d1c27a
BLAKE2b-256 d859a887a6f00db467286bba820dca910cb3d25476d0f6d817d92a80c944f77b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.3-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 f17a4e7c1bd0ed1f890cdc3447567801296b2857b4250d1cd23c40ec929cc50f
MD5 4778b24d5d3488066951f3c5f273c0cb
BLAKE2b-256 16b3493b6b5fa6876f67e7dff878cac17206f2727b93eca3040a8f1e26e9fb18

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.3-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 37b87a8ea3e2910286ff6f21dcef7a0044e753a18f6a987a085b728a0ded8f7b
MD5 02bdafc7b42a1129362f96d90906b72b
BLAKE2b-256 2a24a8b65156a4b7c19d839a970c93da54963f90df8545c8956c5fcdedb49eb2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.3-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8fcc112ed76c3e9d3b1d992fe97e079f51267c601b22bc292ed8a7bc961bd3af
MD5 e1ea2e6b6434de4100282be1c76132e3
BLAKE2b-256 aad545b565596ef9b3b2a4ee940cba810126c01d88ca5cb57ed89ec0d6ebb5cf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.3-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 549cf4b6ab259bfefabe8b5c688c21d21e3ef6b5e7f9123deee54d84d1334c5d
MD5 315532e231c811c63363c0a6841ddee1
BLAKE2b-256 c12ac237d9e37b9514072103906fff6ff2f111ecbc2e4fd3d78c851e560524c2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.3-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 a7419cd8acf5d2e460f70ae62396e65a79cfd3262a655b5fd753a0ef0dee4bc4
MD5 f98212ad9c8424681f70c78007070a40
BLAKE2b-256 b1646b46485273986fc3eed9e76a2a2026029e6b5577ed5dbce87c9064f6344c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 81d9bbd33856a47800301dbbc5ae51d499107a2cf41542a400d26d7be0ce3c74
MD5 d60348f07bfbfe4e60868f06bfdb8abe
BLAKE2b-256 3f46054c72ff489d95a858d12b7b90956a1b61a16f6696483c0c544a44f23931

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.3-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 7fe9f9a19e22faa1a4101c6c0804b6d8cb6a0e6d040a6e91c4b4f07c88cad7d1
MD5 ff0d6ff486f6cfeeef985cf653596610
BLAKE2b-256 3a6fb78e3772b65ed05f661a14c166a75655e3ecf1ae47ea70e0890fc6ddb5a4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.3-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 c4160dd66cd69ef1ad2989b72394c71227b81178deba3ef3941af6055e41feec
MD5 99ce7fd87e00a788b9ed373c314a5076
BLAKE2b-256 d2fcdc28e6d2043b3f106c4f5b4aa12a032554e42df07d000746fd3f5db50f8a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.3-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6ec6ee4197304557c068e9cf0aef9299d9eea414e106d6aef6fb9bca32b88c5f
MD5 64cbdeeeac4fcc6b818f017b74c4cd9d
BLAKE2b-256 f9858135f2f0415716fb0ae92262fde0109e3bc4983559842e10441c423a28da

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.3-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 3912adfd99dd8d37d15c5f1f4e2a7e6d9f06db03257a4f25e6da6b87d8dac604
MD5 7dda9db796bbaaf85f63d9b3eb7f29c6
BLAKE2b-256 daf7e7a8677061e6cdbffe321e555fa7693c6df009abc46e00438605d1f164a3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.3-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 5828292b53e52c7b77872c351a97d85cc261d6c38f4b6af3b1943591e86151c1
MD5 6b79bdf248733628b4333153decf8a06
BLAKE2b-256 39db0519faecf5748f5c1680f386a3e80c7d6279bdd1f9667ad768a0ba37618a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 fc1b6569fdcc352bddf5433bd000b9db4bd5441e9c4afb0c15bdc409370e8cf3
MD5 c1bee09d300866e8bc25716af9c673f8
BLAKE2b-256 b6e1ce84980a4d7d787911ce92f679742a71072ce98882d5c8ec63a3f6e7b16b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.3-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 c796471031ed8d300317141f96308abd6550c5b8d4dd4aebafa07d3c1d193ab8
MD5 352d58404142972bb97abae5e3cd9fff
BLAKE2b-256 b960602a30cd002c21aeca444b326f18199e404b518d0d25519278be6f8ee327

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.3-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 5ef12dbe43815d2b362e32f7672cb8d4a4b89d3e16b1f6272ac34aa4f56ef97e
MD5 447c3dcd5173a1fb8d5469d9e7a99f55
BLAKE2b-256 d1227ee0e07294e24a51bf9ce8c6bfde13ecb26fc72e91c3418c585c7697113b

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