Skip to main content

A memory profiler for Python applications

Project description


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

Memray output

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

Notable features:

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

Memray can help with the following problems:

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

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

Help us improve Memray!

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

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

It really makes a difference!

Installation

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

    python3 -m pip install memray

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

Building from source

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

  • libunwind (for Linux)
  • liblz4

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

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

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

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

export MACOSX_DEPLOYMENT_TARGET=10.14

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

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

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

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

pre-commit install

This will ensure that your contribution passes our linting checks.

Documentation

You can find the latest documentation available here.

Usage

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

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

Memory profiler for Python applications

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

Example:

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

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

optional arguments:
  -h, --help            Show this help message and exit
  -v, --verbose         Increase verbosity. Option is additive and can be specified up to 3 times

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

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

python3 -m memray run my_script.py

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

python3 -m memray run -m my_module

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

memray run my_script.py
memray run -m my_module

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

memray flamegraph my_script.2369.bin

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

Pytest plugin

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

pytest --memray tests/

And will automatically get a report like this:

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

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


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

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

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

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

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

Native mode

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

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

memray run --native my_script.py

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

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

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

Live mode

Memray output

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

    memray run --live my_script.py

or if you want to execute a module:

    memray run --live -m my_module

This will show the following TUI interface in your terminal:

Sorting results

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

  • t (default): Sort by total memory

  • o: Sort by own memory

  • a: Sort by allocation count

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

Viewing different threads

By default, the live command will present the main thread of the program. You can look at different threads of the program by pressing the left and right arrow keys.

API

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

import memray

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

For details, see the API documentation.

License

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

Code of Conduct

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

Security Policy

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

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

Contributing

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

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

Contribution Licensing

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

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

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

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

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

Steps

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

Project details


Download files

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

Source Distribution

memray-1.8.0.tar.gz (1.0 MB view details)

Uploaded Source

Built Distributions

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

Uploaded CPython 3.11 musllinux: musl 1.1+ x86-64

memray-1.8.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.7 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

memray-1.8.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (4.6 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ i686

memray-1.8.0-cp311-cp311-macosx_11_0_arm64.whl (836.4 kB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

memray-1.8.0-cp311-cp311-macosx_10_14_x86_64.whl (802.7 kB view details)

Uploaded CPython 3.11 macOS 10.14+ x86-64

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

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

memray-1.8.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (3.4 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.12+ x86-64

memray-1.8.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl (3.4 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.12+ i686

memray-1.8.0-cp310-cp310-macosx_11_0_arm64.whl (840.8 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

memray-1.8.0-cp310-cp310-macosx_10_14_x86_64.whl (807.2 kB view details)

Uploaded CPython 3.10 macOS 10.14+ x86-64

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

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

memray-1.8.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (3.4 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.12+ x86-64

memray-1.8.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl (3.4 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.12+ i686

memray-1.8.0-cp39-cp39-macosx_11_0_arm64.whl (841.8 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

memray-1.8.0-cp39-cp39-macosx_10_14_x86_64.whl (807.8 kB view details)

Uploaded CPython 3.9 macOS 10.14+ x86-64

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

Uploaded CPython 3.8 musllinux: musl 1.1+ x86-64

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

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

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

Uploaded CPython 3.8 manylinux: glibc 2.12+ i686

memray-1.8.0-cp38-cp38-macosx_11_0_arm64.whl (861.1 kB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

memray-1.8.0-cp38-cp38-macosx_10_14_x86_64.whl (826.6 kB view details)

Uploaded CPython 3.8 macOS 10.14+ x86-64

memray-1.8.0-cp37-cp37m-musllinux_1_1_x86_64.whl (3.9 MB view details)

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

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

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

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

Uploaded CPython 3.7m manylinux: glibc 2.12+ i686

File details

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

File metadata

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

File hashes

Hashes for memray-1.8.0.tar.gz
Algorithm Hash digest
SHA256 e89ff735268676c94bb1a03f6cd1c40f1c9081a4614905ad29f87b71b8ba12a5
MD5 bf3d3e427526961c2bee8a670d35f991
BLAKE2b-256 e4fce05bebebeeb6fd10534566e4948398376cf0a894279dfbc76df417e79464

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.8.0-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 29248fea300317270669f7aa9764a667aa9ae261489ea8a71044c480b352b019
MD5 a44b1220ea21ec00379761bcf2505516
BLAKE2b-256 881c3254685930d2fc935c306aa4a1810b575d9e015bdcaea71b72b375768f5b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.8.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4b9a24937ce08985b9db6d724ae84db5c74c8eb6d0ca7985c425c300bdff2167
MD5 1d586fe2cf449fd0c706f727d55fed0b
BLAKE2b-256 372c1904190102f5e05570914e16002ec47c6673fe5802e400a6ec043500f7c4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.8.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 29f503fcf39fd9cda268665846b3efba14b48b1a6f2624be1d4814b84fe98802
MD5 25187a3502d30d953b7f09727ba897ef
BLAKE2b-256 cf04b486b3e1e2030bb2949d8cd3ebba9bb8d02da3d3768411dd4eeae8d62b14

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.8.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 737b5926442f91bb705a3693f9beeca5db2e28b8c842f7c6e78040afaf9ba5f3
MD5 6194b7e8a9d8c090bf9263c6f1ebb7d9
BLAKE2b-256 98812faef75c0aa005b7b3d115fa82f559ce0f741fb00d54cf4a582c6c26c703

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.8.0-cp311-cp311-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 1c914478ed5f477893fe087b1050ce8121d2ba2f8d2e18cb4407cd598ca9f605
MD5 60dcf1287c22f66ff5454c7eb6ecd851
BLAKE2b-256 212c84ca73985a18a9adabe58eefbe22deb6fe925f79e63edfd67bb523ab78a3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.8.0-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 3f5ae705b6a71e4ed7d9e1aef156e86faa99f12b0e100517965597e336f54c19
MD5 754933b272eb5f240add389de4cee6bf
BLAKE2b-256 6c44f3b5f47edf41e9b4d39bd0dae43817f2517e56e88c82401258e9a68bd766

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.8.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 11f5ca5a1b75e7a8fb2e238a2300822023b711bf07428e8fa69b4a1544463f0a
MD5 89151f086f872d3196a5514d2f8f7a09
BLAKE2b-256 d14dd9788d472daff653a2406158895d543c92b01ec6173419b99ca5aad83f1f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.8.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 2a5c67a797c8048a8368e64359a9fd57e1261735cfe184d0da348526dbaa442f
MD5 99913d4555b67d4597ac808c13672bea
BLAKE2b-256 cdc5c64b6715411e4b2c5ef233a2200653b4973906069057f877c7b8509cab45

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.8.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fbb84020830e2746c189859b96033c45d15093b373c46826eac472412bb380ad
MD5 0ed233622d82c7e0ee793c5185e4cc3a
BLAKE2b-256 43e5ff38f759a148414dffa03ad7250fe8c7a21a6048d89a1123e5e8ab764b7a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.8.0-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 e25e7d7d9db3396a7d8e30a89771b35483ef96f2656e4726060eeaa663b0c6cf
MD5 9a2b4c3476de6b421889047452948b98
BLAKE2b-256 94e1193c94a16b3d1727466b2cf52631e65af5ee7285f57c74308a55dec5e566

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.8.0-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 c10533b6e4af3236b2e510785913ac5ea416adf49804980251b24a796be66339
MD5 c6a51ef75ee461136a18c95a0b11a9fb
BLAKE2b-256 f0ff42709d714e5899b4cf628204d243327b772ede19b598d3e996022bad1c9f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.8.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 73622218f45cdb20e7aeee9fe0640ae8224d1c094f8e3539017de086f09fee3f
MD5 bc5481ac4c3363bf832a5051c6c84150
BLAKE2b-256 c0ba157d3c7c3e40b7cc45c4b8dc917a55faecfb715b395c0b95d9b0d0883ca1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.8.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 f2fd13e712ff9a8a25423f3ededba0dd3fdf37c034747ebc0a12d2f254988b3f
MD5 67918a569212a4125f1d1e4b1ca59c97
BLAKE2b-256 eb17051217585d623789cb14cd86da563eca21774df3de05d0098b0ee7ad51ca

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.8.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4944db61255e5aac8f36fc40a4b8e90d5c3cc582f24c813c6d08d0331786335a
MD5 42eace6ec4663e6f8adc354870347ffc
BLAKE2b-256 b46d074e76f7265cae0aee4c371e2aa5dee8181939ec9e03d7040e34199c0635

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.8.0-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 c9fbac78e4e595e1a7ab08715ab338e4d50ecc3786f9692184a3d6085ad4d4dc
MD5 2e4063083bb2b3241abb168ebe01c922
BLAKE2b-256 9be51291c3e625271399d12edcc23a9eef6db341f4c4ac237bd09e452c34ffb1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.8.0-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 3f88438ac6cab66ed464a35bbf3ca03d97b6d5e7ba8fc82dd772c6ba0bfd41eb
MD5 0c088df8c465afa29bb28e5009e96a9f
BLAKE2b-256 a951ed231173813006491aceba9a1780f7be7e436abaa2b354f369db6a64b4ad

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.8.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 df0daa00b597adc0d48f9ea9a1f422518b93e6bf2d5072498b4af9cbcd9c8ae5
MD5 1d1ef35c078b7e6aac408262de38403c
BLAKE2b-256 10225a29545f3c1b617d12fe60ec5676a5205fedc5e91a2bfc9e4b715d7bd7ca

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.8.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 6ea7d66255a1e6fe30d2bc4ab6c0b682b1a323aa846b6902e1f64558cc5889be
MD5 7b21ed46d2b8bfd6bc719e97ab5a75e9
BLAKE2b-256 3601449f2f87e03f5602e4157572be243c27a3fc511f6a5dd029ad6302ccf5c6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.8.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8ce4d7cf163fff54c395e643c981758b1505beb2373700affe7d91a3d4f5ce81
MD5 255d05846af8bbae9fff137fbdfc058d
BLAKE2b-256 8c16e5bcc982ef1fa881da182cd554f5d3cad8fb01a2fd337845ecd22d7b061d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.8.0-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 b1c5c7ec52adcb72b58803ed9637767342b8a2bf2f1d8f08ef3c83f358604d69
MD5 d2173803f4d626c5292b9523940d306d
BLAKE2b-256 9f6f0aeccd444e86cef7311ab4aded54245d0d4fe9554459f643f3af46ab10d1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.8.0-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 ef590db229cd041a52115a8c3e9d01f93480dddb1a5e2e3d260ea3774e28547d
MD5 48b7b722198f89d220ca9f2dce4ee12b
BLAKE2b-256 6f4b9ef10061c5f44396797cd8a53cb08d656bebee1cbeba1edec5c00431fe09

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.8.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 34a39d326960287c9677aa9fafcebcfa879988e60e57a5f7329e32c7dc46b6ef
MD5 2588dc75bd9aad52efade6fc57e5cdc5
BLAKE2b-256 4cb816115edae8a1900c62c06beb0a74fae83302a47564263bee6ba2ec043358

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.8.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 4deb1a8de09ea7d42befcbbb725ac27f327b1f47c7b7a84cc4871677fdab01e3
MD5 88d58a6a7b2ffe26f266218c4a560bab
BLAKE2b-256 e6c29ea2c7e6fcc8777d3b760cffa7c91c921e90c3628896673a776f5dcb764f

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