Skip to main content

A memory profiler for Python applications

Project description


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

Memray output

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

Notable features:

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

Memray can help with the following problems:

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

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

Help us improve Memray!

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

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

It really makes a difference!

Installation

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

    python3 -m pip install memray

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

Building from source

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

  • libunwind (for Linux)
  • liblz4

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

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

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

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

export MACOSX_DEPLOYMENT_TARGET=10.14

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

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

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

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

pre-commit install

This will ensure that your contribution passes our linting checks.

Documentation

You can find the latest documentation available here.

Usage

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

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

Memory profiler for Python applications

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

Example:

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

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

optional arguments:
  -h, --help            Show this help message and exit
  -v, --verbose         Increase verbosity. Option is additive and can be specified up to 3 times
  -V, --version         Displays the current version of Memray

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

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

python3 -m memray run my_script.py

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

python3 -m memray run -m my_module

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

memray run my_script.py
memray run -m my_module

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

memray flamegraph my_script.2369.bin

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

Pytest plugin

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

pytest --memray tests/

And will automatically get a report like this:

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

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


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

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

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

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

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

Native mode

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

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

memray run --native my_script.py

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

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

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

Live mode

Memray output

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

    memray run --live my_script.py

or if you want to execute a module:

    memray run --live -m my_module

This will show the following TUI interface in your terminal:

Sorting results

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

  • t (default): Sort by total memory

  • o: Sort by own memory

  • a: Sort by allocation count

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

Viewing different threads

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

API

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

import memray

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

For details, see the API documentation.

License

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

Code of Conduct

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

Security Policy

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

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

Contributing

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

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

Contribution Licensing

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

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

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

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

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

Steps

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

Project details


Download files

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

Source Distribution

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

Uploaded Source

Built Distributions

memray-1.9.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.9.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.11 manylinux: glibc 2.17+ i686

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

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

memray-1.9.0-cp311-cp311-macosx_11_0_arm64.whl (884.9 kB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

memray-1.9.0-cp311-cp311-macosx_10_14_x86_64.whl (857.3 kB view details)

Uploaded CPython 3.11 macOS 10.14+ x86-64

memray-1.9.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.9.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.8 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.10 manylinux: glibc 2.12+ x86-64

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

Uploaded CPython 3.10 manylinux: glibc 2.12+ i686

memray-1.9.0-cp310-cp310-macosx_11_0_arm64.whl (882.6 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

memray-1.9.0-cp310-cp310-macosx_10_14_x86_64.whl (852.5 kB view details)

Uploaded CPython 3.10 macOS 10.14+ x86-64

memray-1.9.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.9.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.8 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.9 manylinux: glibc 2.12+ x86-64

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

Uploaded CPython 3.9 manylinux: glibc 2.12+ i686

memray-1.9.0-cp39-cp39-macosx_11_0_arm64.whl (883.7 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

memray-1.9.0-cp39-cp39-macosx_10_14_x86_64.whl (853.4 kB view details)

Uploaded CPython 3.9 macOS 10.14+ x86-64

memray-1.9.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.9.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.9 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

memray-1.9.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.9.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.9.0-cp38-cp38-macosx_11_0_arm64.whl (903.6 kB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

memray-1.9.0-cp38-cp38-macosx_10_14_x86_64.whl (875.7 kB view details)

Uploaded CPython 3.8 macOS 10.14+ x86-64

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

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

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

Uploaded CPython 3.7m manylinux: glibc 2.17+ ARM64

memray-1.9.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.9.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.9.0.tar.gz.

File metadata

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

File hashes

Hashes for memray-1.9.0.tar.gz
Algorithm Hash digest
SHA256 6506844095424060920a7ae08afa4769ca1e0125a459a8c11754389404cfb32d
MD5 21ef67d01959f77aafea5c3fe71332f4
BLAKE2b-256 fcd19e6e6f3c4f1947abebf88e32026ce176789867705137c3abb014b80964fd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.0-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 13eb3ce3839dbe1e944ec37e6f08f91a620d340e67000f88db6c349aef7ddac3
MD5 ca5a14793927d8c283d6678730ea7db8
BLAKE2b-256 6cbddb0fb6577cd8c477b3f3205d0a5434c113c004a208a93bd5ded54bd24483

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 02855637bb510b371fee8bd44a7ee9c754470f6b32ddcf3f560d7e68825da7f5
MD5 1cdf50071beaad3837356f57f1ae52c8
BLAKE2b-256 d5c00aa33bfd02580ade5d8c5cfb33debc24b60feca502a3369684814291e2b0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 b8aacaf87e417c0b2da9e180a8ac5d43d9d61bed199d34bc49265e436b8a1518
MD5 2ba5875f6d9b818080287a908b45827a
BLAKE2b-256 c63e3c6cbfae6c93061b4c6a6955cb4bd15f7333bb7986b4c87aed2e343c5acc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d37d9e9dbceca7760ea2dbeae15e7a25cb45d5e15c61713981e70dec1d83c1a4
MD5 4baf9f05b8814d95c742fcfb48f735b7
BLAKE2b-256 5704316a962fed8c1d2c417148290883f43be3903482fede98eb70650ca3729f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1d82ae37b1cfd85f0beb7292231453a7e58e216f7cb7de18eb937dbf827d1b98
MD5 1d5420667408379963a17f9bcf5bf9f1
BLAKE2b-256 412483362ea3ba6065d4893a00e27f109848e1a10c840ce68b2dec05c97653da

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.0-cp311-cp311-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 78fb718a345aa35d4fbf8d9a04f778e62964c4bcbe1416ffa9e4b9fa478a8caa
MD5 11489a1835546572a28fd312b5b010fa
BLAKE2b-256 ed878d01b53ec5c15ad4a9ae3b4518501b2a65f1c936c5a9fdb1d0a1d3caf343

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.0-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 a904e2ee1178faf84f76cefda8e83c42d792904f5469d086afdfbfa257b96810
MD5 eea0e77f59a373b427ace6d306dd8fed
BLAKE2b-256 615ebc9cc1f7d20613df677fed88c18c16b0759e010e3950a51c1566c45d4f90

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 137c66a0b9120f00471d5904698d8a624bf9f5fba2294e2b2937c4763422ed2f
MD5 be93610b6d4f40cf4666834c5be84020
BLAKE2b-256 65b0a292fcc2d970fd62b0dd76310796565675e0869e165f6f9b26e318241ec0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 bdd7c01317197f963f78812cbfd68b961031d5b204a74e5afb9991ff9b6a3c18
MD5 be6ca937a74bda9e6264a5d57bd64ae4
BLAKE2b-256 79ecf90909dddea69e52be33aa464fb422f0b8fb1670840d5b6285633c572d34

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 e8174b2ba74889537287f057efca33c6e33f1331e97dd0e1a45daf17cc9484ca
MD5 3c5e8d3bc1f085c18f9f2ede685edec1
BLAKE2b-256 590798a1017bcbb920a70e70b02dcc246674aeeecd07ab666815a81b8ef376ba

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c2be30db7f777ae062806a2ab3d6ca0eb495e1ac7a25a9187c38362a2110d600
MD5 2d8c14f5a8eb0ac6242394ffe3fd6f51
BLAKE2b-256 e0b19f7117cd11a855e2a5abdfa47eae229ce8d30a5e6b29152dd07fbcc4b15f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.0-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 517fbeddaac06d5f7ee802cd67db5845e7ea4af5ae434680cc7a05eab33ef9fa
MD5 15096c46a6d818ee3fb8f6227fa002ca
BLAKE2b-256 4af69ebe3c93d118d7933c9a77e04733a848e0c4260924f0cb874dcf8448b31c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.0-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 27671cebf1774c5c1dea7c5b3e6ba632f231d27b38dae60faa437d639dff867f
MD5 9584830d58b205c14a9f98f21d09e07f
BLAKE2b-256 2a9cd2dcf0ff6a3a5e99cd8dc9153c1f74ed225b2feecd0bf239cec1860bf062

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 fa394e341394b019dd28727a3a595cae82afb7e71a0e0a76c7ca6a906debe728
MD5 19875886b9cb14bc033d38eeab5e33b5
BLAKE2b-256 c856a8eebb7bc15644899094d33a8706322ae76abe456552e8b50d60555fc1ce

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 200fa3e6bc28187ec3baf46d05aa637e747e77ca1afc5320fac74679fca35dfb
MD5 729024bf834e568aa6397affa7eaba4d
BLAKE2b-256 fb246cb3c4e71af5bc9f005cdcbeaac9f96dfb8d314efa203912a418b3e96a46

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 6fa58b64a23d3496ff918f8b0b963a33c2d41e531d566a9de9c3d5e2e65ad523
MD5 1479c732c3a28f31e34532a1da1d6a5a
BLAKE2b-256 d6ec7c1cec01bf566a31c9859397e0849b7515e4ab87be8760d20663cb279c02

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 999bf81d849e6a87fb5700f9ace9937c2bc0afa99d73e834910d22a55a1ec6fe
MD5 6f8d594342d265b03964e42e41cc48de
BLAKE2b-256 402c7576e37ad21ae8c790decb8c6b427d83065faddb2bd425c6930648121886

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.0-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 c8941261c8a93c3c9db5e979f365b90f79a5630dcc7c6001a41258c9cebd2178
MD5 3f60a8fb98a48f6e378a23fc8eb27e8b
BLAKE2b-256 1300f173b04507613a76d09b3d8d8ac084a24397f9f5491bfe46499eef363d22

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.0-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 4172c5898a8209a417a2151d8103dd1c4b70d9717e9d73a42a2ea63b7e1ba9d9
MD5 e62962c1b647b1d43c254bdc51a31ee2
BLAKE2b-256 77ff39dc0edc44ccca51cd5b46272b023cf6b2aee22c5f94128ea02a2501594c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9a66a6e691a36590e0dac7c5ceeb5b9c629bdeff5140337f21f9179e78d9a95c
MD5 798de4daf2e5f462600f1515c230664e
BLAKE2b-256 ce454631a13fd848fa220d02a7bfe27aabd1ab357561b2292fefec3dc86ed7b2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 11f4296bd5aca3fa9364b63f09c7ea2251122af845947db9194b4692dc1c02ff
MD5 7b4849fa6332acee5d9ec3b918ba79b1
BLAKE2b-256 50beb73f38f074249e797b6a67511cfacc993011bdd489a6fbe3917bcfd247db

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 c4130fe18dbf81d92df346ad381479d8116e7bd6ef3677c06f08da83ce8de5c5
MD5 7e1af2bde021dbb030ca28b111b48b8a
BLAKE2b-256 c3b2799f7c75ab88948a347b98ea8e94698404b113ed096c1e88b4cc17759d04

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e9e9490cb739271d6b037cec8a8217f76ebe7ff7a2f650cb473061d566e1d0fc
MD5 9443cdf67c5478c1ee2674469e7a8585
BLAKE2b-256 7362231813770246d4cf532b96d9338ca8294a4697e8e47649c7b3fd06303d47

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.0-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 faa206910f5dc578cdfe6b9510e149bfe6f0375f64f12a9560d7c89e59ff5994
MD5 88a47012542ed50209f79d40410e51ed
BLAKE2b-256 53c44636b777d52b30d4c6c8540c26c4ab9125214d696841cf67723fe400fb36

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.0-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 fa7d694bbbf1224ec91b66ff54b313b56a0b721195abebc70a305afae0b209a5
MD5 72ba8965de853de59c237857445bba9b
BLAKE2b-256 cc6b5634ec323d03db741d58cb0a6accbd1b43825d7a22f48495fdbe6f0bba6d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 156410e84f6cd4c38872a9926145e2d0fd939e443907fc2ea48c3c17acee0575
MD5 48e36a2442d8af3dfbf3856e936ff156
BLAKE2b-256 9391a335f0c41d05299d35c8b0fd75e8bfc3c74e544658c4d263ac936a4bf78b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 9de85589ca2796de4b1c57bf4252c72c62ba482bf62834a6ec37fa9e8a473909
MD5 bf53d8b6a38bdd220fc3e756e16becff
BLAKE2b-256 6833530c3bb859e9a71d5a602a70f68b1daf7c55e6e1b2708c22358367b90531

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.9.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 d5867c2fc1fbd6d0a6aeb9718f9024e4c79febcd3d25a25aa78f517d20d65235
MD5 834de2d28f00b0505f267a3a92d08d40
BLAKE2b-256 03fbf6e144cd78f96cb87fb01ac67afd7bee349ae15c87ddb82b726c79448f4a

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