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

Uploaded Source

Built Distributions

memray-1.13.2-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.2-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.2-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.2-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.2-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.2-cp312-cp312-macosx_11_0_arm64.whl (897.2 kB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

memray-1.13.2-cp312-cp312-macosx_10_14_x86_64.whl (926.3 kB view details)

Uploaded CPython 3.12 macOS 10.14+ x86-64

memray-1.13.2-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.2-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.2-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.2-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.2-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.2-cp311-cp311-macosx_11_0_arm64.whl (899.9 kB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

memray-1.13.2-cp311-cp311-macosx_10_14_x86_64.whl (926.1 kB view details)

Uploaded CPython 3.11 macOS 10.14+ x86-64

memray-1.13.2-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.2-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.2-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.2-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.2-cp310-cp310-macosx_11_0_arm64.whl (897.2 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

memray-1.13.2-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.2-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.2-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.2-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.2-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.2-cp39-cp39-macosx_11_0_arm64.whl (898.2 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

memray-1.13.2-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.2-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.2-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.2-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.2-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.2-cp38-cp38-macosx_11_0_arm64.whl (915.2 kB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

memray-1.13.2-cp38-cp38-macosx_10_14_x86_64.whl (944.1 kB view details)

Uploaded CPython 3.8 macOS 10.14+ x86-64

memray-1.13.2-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.2-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.2-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.2-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.2.tar.gz.

File metadata

  • Download URL: memray-1.13.2.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.2.tar.gz
Algorithm Hash digest
SHA256 355803182ea4a61dcb456c4c1e765f929123fc2b6998ba44efa4ae32b763e05b
MD5 0a22bafbe06aa999c6e625ce1a216219
BLAKE2b-256 780eb2b5b7f89e04001d066b6d38d9c2ce04650b71c32e4c5b91f19416a64440

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.2-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 326acdae17de17e7632598853774a7e09ad1b72eae2d3755f88a212e17ba7813
MD5 3205eb935385fb08c6a02c83ea5cb026
BLAKE2b-256 f856b93b89e73be69115fa5baf1f4ac0493bb3fedfb43e25da48578b4f229308

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9787b9f1a85fe29b0eb7b963201a4a608f8ec7de9b84bb72d672f2308a59cf33
MD5 b34109e3699b69968c76289419987585
BLAKE2b-256 c3960e9eb9164f3f57db376d814df37dcc00d30f735c3ebd3c1479c1e67ba28c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.2-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 7880f21a2df374d6d95004e7f55075516e57892e4ab1e77f5df65dd2ad382a86
MD5 80596701c8e064e8ba3a476c271f82a6
BLAKE2b-256 12a3a8deb4e3d68dced7fde5dd6622449252039113fecf7171f5ad284ed6a844

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4b9e35f1bdebe63bb719eac3866fd07ed8b9ffc1bdcbfff3e0d29140d335b8f1
MD5 34ef91defdd7d7d3801ea50e2531ded6
BLAKE2b-256 eb9ff65f6d2199fa04f0464e0bd5c0c0a84251413bc3fda83c97865e657fdafa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.2-cp312-cp312-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 f441e05dc472a1be07fbcf1217f4572d682c5814fac083523d603bc418b70f07
MD5 c76a3708993f102b7b516b8df49786cf
BLAKE2b-256 f7fd5e6d55a4335828bf80e9315ba474abc810a29b0a1cad9f31540902aa4966

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3c87b688359de63a22308bb0879693cf9c81577a3c535d4a08d4c7130ed01871
MD5 d2860a2a6006851f30da4bde349c2328
BLAKE2b-256 6d5eb6a42e45f3ccaffcc77cb7451e7b550594cfe99b049520dc5d8054ae325a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.2-cp312-cp312-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 3855b81d1d8307a2209540011fb683f65854b01c92bf4fe3d34866a96bcd7fb9
MD5 aef124c33601c8f956c440a942aafc5a
BLAKE2b-256 f73bffdd03da3cec8dd2e277b19ddbe8d7c8709d8043a0220a365df861ce2aab

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.2-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 b295a5046b9327852b9f2010cb721317ef61b2f5ed816651d135e971ece3044d
MD5 34542a6f4cd41bb4b7fa9811239c6bcf
BLAKE2b-256 dc367ffbe51c69267b0091c213e4c8d1b2272f18361cbbed2ba4fd9f6014d1f9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 dd3bfb4d51d36d826fdec40079e527012e167ba1a4ff0dac843749c631164ed6
MD5 04ebedd7a8158433c3a037f1d0dac0fd
BLAKE2b-256 eff85c25862c2799890f52984b2932bc72222471c8596b07f543bab12e02e122

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.2-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 39a1dd4a2004dfaa254bc5469cddfead716001290ad18705e9a39197ee3f529d
MD5 6b9345cb3b05d72b65c0a7d71376b3d3
BLAKE2b-256 05ff348a6b0f1edb4f9de3052c70d09fab682d446dfbe285a37975db0088826f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 74c076899614eaae7e5b00473980dd75fecf09c22206db49f0861e076b460793
MD5 d190eecc54a839112b6cda7d90b2a893
BLAKE2b-256 2821857377ba159f2bb0130b6bd296e595a473cd48d5e43bb7e2027c5c5ab36f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.2-cp311-cp311-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 5ab90162027af022b14fa03420112efee7b1dbf110591d16b442701932c95f2c
MD5 48558ba8824856e69a029a844d906bff
BLAKE2b-256 102c15f9e765424912a49a08bfe0ce22e302a0d682c6aa602227478fd878ba1c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b1b8d4f2bb000f526767004e065db59e403a1bf428c216576a168e54dac3f1e4
MD5 f4c5e1abc2fed7f7a96a5ec74665435b
BLAKE2b-256 4b1235a22e034149394f40905390ff0a267c18b0c57d437f2de4e6a4f344edc7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.2-cp311-cp311-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 6f59d65392d3725770c136d2773b78d90a67a84041570773fed253991adc7f7a
MD5 4df27a2b366ca5d85b49ee5be3d71863
BLAKE2b-256 95f93db7c60a32ee0ff72eda9bd94836b4d060d771ff7bcad2c0dddc97829393

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.2-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 99865a5e913337abaff03627be96c1924e5bdf41d716c3f3e30a29dae0c34dbc
MD5 b0840dd511a0010d5c6b63857c11768c
BLAKE2b-256 de343e5da264986b46dc173fe114da464f96b73221f30100b9ae72cdb4e25e45

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9852484e199c7111e6d571f4fef0e0360dde8f88449d9c5c8e6f1358bdb0ba10
MD5 7d75508c8cf45b018d23076f3274b283
BLAKE2b-256 d9af291e51f41c27e82611737a6fbf6879f8a4eb3a7479330bd50f7ecb3ddfa1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.2-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 3fa2efe628159035ae39a458de81b6f0816eced2c10d66700cf84dacbe0a3bd6
MD5 0fa1792411b11861960b2ff4917a9f8f
BLAKE2b-256 b5ad7eecc69eb065459d1049f84339b77c78c5ecf11d52765e28e5db285f6070

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.2-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 9caec18ec308d126229053d366240271cca2186f3c1941ba9cba5ab787259a4e
MD5 7fd15ef5b794150fb324f3f7ee67acb3
BLAKE2b-256 2cc38ed8992bd2b96d69974a0a1d4dedf21875969acc8abd07a3af07af3739f3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 eb1c75ae62c8aea7010df4d4ec5ddf057ebe0ac6e694d852bf1c732dc6b9febc
MD5 4169d1e0c31d7b168d047fc0b9f9a406
BLAKE2b-256 02712e49716318e75dcc8a1d1a8d9a7936eed55e720e5d504063beb712e806f4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.2-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 a773eabc0a7dad693eec193e28027130ba1d82ffa5345143f49f4a0bdc1c6c65
MD5 05e95f8bbde742d17899abc6dc486dd2
BLAKE2b-256 97669a7eb0e6068368635f876710b6b6e0bc6e81de6f165c44583a734faea479

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.2-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 1f38100fedec5c318c00654864ff2e6e8b8ffdb472206047e300337c2d55bb37
MD5 dae100a51723b781e9732dbfd54a262a
BLAKE2b-256 165fa858604935c074443456a839827253bb399e3a5cac7e8bdaa0f38267b963

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 6305ea70ddd15b9897abcc6f234b8aa94d4135146381b3d68fc97ec2d8d3f7ec
MD5 1be65aa742761e332ff302788b1199f5
BLAKE2b-256 6b0bb18522d8dba799f4f5eaa6df808e3b7aefe28157b7c7150a5fa020693715

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.2-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 db87adfbf05cec117b75cdafb7e2627d649b72f15a191e106375ee0acdd54b53
MD5 e762f219490480660ec26b6945c9e15e
BLAKE2b-256 ee4c12f6109929288d5e2dd7f6550f0c4fdfcefdfd5456f072df240f58e28a06

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.2-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 71021329db86e03840fe210c5a6581500a069736e6f8835b2dae9c8e6be96302
MD5 5eb4be4879067974d24ee003fd8406de
BLAKE2b-256 b084623c7825da502be7e40c20b65f1c98db55291a3433ec5e8c6b09e8a68a69

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.2-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 48449deeb65de71c0fda4ce9b539a9f35fe2634af3bcac367167903bab25cff0
MD5 4dd4c626ad9f1047700758187182ca6b
BLAKE2b-256 e42dc9afb748387b9a0d575761f6e172ad9068397284998ae00f9300fcd26903

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.2-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 cdd35bf96776c27ffb326c2c4b6f9b50d9461b25f98574df98771593768eb803
MD5 5981324be581128889d810daa3adc2cf
BLAKE2b-256 5ce5224e6f61224a2f865790e05886acf8292a402a93b3a43783220c0add3982

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.2-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 59bcb96af1a3462626575de4763c88217d9c1561d8c166c9a10f00a0c19ad8d1
MD5 14b6c75b633c6850c6fa78124bfe4a24
BLAKE2b-256 3556a532db86eee8797affb15d9e57e52565854872b4c0326c0c29dc3348f5db

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 bfa76dce73e6ee263d254345affc8bf7d4db8f899b7af396a0f5e37899f28aac
MD5 9e5c65d17505b3ff515961f1071a7322
BLAKE2b-256 0346e35e8743f482d2b542479a858d809abe49127660d988ff6b42bab26f01bf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.2-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 60176bf3015a155233d8cfaf7a6141eedc3ce5e89231892a96e162c073fb42cd
MD5 1084aa6208bdd240db2964c0a0bedcaf
BLAKE2b-256 f8b49306ba9be056eda6445cc016f48abfc4c177b119681acb0b02e9b645ae01

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.2-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 6c5595539579f3f662acf794d8ac2fd3f23d3a24c4aea893a15b307c2727c3c8
MD5 b8e69293cba4768c9c2b7cbdb3b1cc1b
BLAKE2b-256 9073863883af6a88ea9edb8dd461abeac5e6e576a7515f3a492cbaec310626cb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.2-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4f09742556da269712cc89a7acaaa0825db15547ac1d03490f09ba3c2bf381f3
MD5 caf98260adce2495ce4f89d1b9c715ee
BLAKE2b-256 684db940c1b8240d88428a2b22ebd1f3d9fe35f4a9cf5490de090b21fe56be44

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.2-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 5e63552376567283a388e67382534017909891df8500d92e2dad1ebd3762d5b1
MD5 30ba7b033c4453df5b2b37c308ab28e6
BLAKE2b-256 7ff2295cb6a6514878577a49f1c12079f29dfd221be622f15d9b0ebe52fd9292

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.2-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 300c3710d6ddd291d6b53402e11c0de5818223e58e21ca1d42817f36dee29b24
MD5 cb61547962766e28ba726e39dc724492
BLAKE2b-256 3a243fdc4a097df923d4c209c07caa93da4d6a8bff351180120f703e40e24ade

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3bef98aaf398cb7f47669808d5febdad4323050f32f6e73ec3bfc6f7c04aacb0
MD5 3b18137ef2d382191e6264d1dc50d4dc
BLAKE2b-256 c0de85add0beb3fccb2792c93745fa90cdebc3a16c072a3fe9a3ce60fdcf272d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.2-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 d00ba714d6f8fe32fbfdf75f2d1b6755edcd7c6835efc4a65fa58943c0b53e62
MD5 d350390f2071e093edb1ca3fe60afbcc
BLAKE2b-256 6129f4caa151355523313e10b31469c3a7c80f00e65d853e2c9de2bf7c1d5dde

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.13.2-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 8c7ba0bd98323c71a5f2cafa81e74d232e9d1c7437682fdf1cb8833ec2c70f08
MD5 84ec7ce8c2d37fa806c9b5dc65c572b6
BLAKE2b-256 786df7f1d807dfac173a8716764712361a300791c4bfe0a7d4305ed7cdbe33a2

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