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

Uploaded Source

Built Distributions

memray-1.8.1-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.1-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.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (4.7 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ i686

memray-1.8.1-cp311-cp311-macosx_11_0_arm64.whl (848.0 kB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

memray-1.8.1-cp311-cp311-macosx_10_14_x86_64.whl (814.8 kB view details)

Uploaded CPython 3.11 macOS 10.14+ x86-64

memray-1.8.1-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.1-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.1-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.8.1-cp310-cp310-macosx_11_0_arm64.whl (851.3 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

memray-1.8.1-cp310-cp310-macosx_10_14_x86_64.whl (818.5 kB view details)

Uploaded CPython 3.10 macOS 10.14+ x86-64

memray-1.8.1-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.1-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.1-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.8.1-cp39-cp39-macosx_11_0_arm64.whl (852.3 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

memray-1.8.1-cp39-cp39-macosx_10_14_x86_64.whl (819.1 kB view details)

Uploaded CPython 3.9 macOS 10.14+ x86-64

memray-1.8.1-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.1-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.1-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.1-cp38-cp38-macosx_11_0_arm64.whl (871.9 kB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

memray-1.8.1-cp38-cp38-macosx_10_14_x86_64.whl (839.1 kB view details)

Uploaded CPython 3.8 macOS 10.14+ x86-64

memray-1.8.1-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.1-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.1-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.1.tar.gz.

File metadata

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

File hashes

Hashes for memray-1.8.1.tar.gz
Algorithm Hash digest
SHA256 36ff8f609a077a1a988851ab921c936397e466fc9ff8a19d106f45a57522dcfc
MD5 4b5105399274149ec19b0c4496c276dd
BLAKE2b-256 bd42a037f090d6cda8d64f407f574a465dbebcd76848729ab8a109c2ce49ad02

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.8.1-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 bf4e0182402b30e200099c7c036e4c3145b49e1143f8839abfa1a07e3f3b9879
MD5 a6f11e98901f0f2e3911b553f4e2c4d5
BLAKE2b-256 ed88296ab90a25fe58417d87f5da93441e444209d6fd566efc1f5f8fc94e9df4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.8.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 aec34234f872f698ce173025f545415817952fa01736bf85fa8ecc1e3f1973c0
MD5 d2b45f2f0a07ad1fe20424f7d9ac0e69
BLAKE2b-256 2f9b5ce46cafff3b4e694200aa2b82f52ba14c5e871fa79a55a9725a80c2ea83

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.8.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 ac2efdb1c19c13b0fd9ccc22b952f6dc5be7b5afa2f799e1b007e99d4f209811
MD5 99be8a494cc994397a5f32ea733f926c
BLAKE2b-256 8a1461d73abadaf8b640dc5c67ce5b6793f63a1ea1bfd1ecb6e64af8a89910be

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.8.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8d4dbde8f8b332af465cc151dfa6ba3787d3309496d81c88d09e81ae07469905
MD5 e245e21490b0278157b7ec5186c92dc1
BLAKE2b-256 96375d942c98488ece71422fab1177cc09be5368cdcda5dec9cecd942315400c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.8.1-cp311-cp311-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 2bcc4f6c9dd20f9c498e47ed1b2b44f5a0386565ac563393e8e9f6d736c4d251
MD5 fbabd591655a9deb58d81975b8a7de86
BLAKE2b-256 e8365310c74f3fc48db058817d7180f3496d50688927b5b8850eda32c0e3134b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.8.1-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 bbfce0030e9df0222bc199006949e1ec6ddf22cf1864b224bff40a70457bcad0
MD5 c3bb0a0782c021a782f0d2207c3ceef3
BLAKE2b-256 d473d2ee1e5e21bee3cba867abaad46da67505f6861e787700ec876e769c65a7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.8.1-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 fffa10e9a1b68ed8453f518b55ee36da0136406d23b5cf79ab37cb5734398411
MD5 45bd0e98fc505583ec475698ccb2b98d
BLAKE2b-256 a9bb5d27ebba82cca126ff05799a360624595b17a3fd7273936f42af4c6b75c5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.8.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 641ef5817f20b4e2c55efdc2d3b7f2a07ac3e989d07d59d9533808824d95f017
MD5 45c727796aa70db413eb80a895a06ada
BLAKE2b-256 9928bea5df298aac68318d6d63e228eb93a2276b6a657603edff0cfcaea19921

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.8.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 055a04489d95266aeb6e22ce3d1b91b20f66f53e2d251e8924bd32e3ae1e82e2
MD5 c5ec99191a9c8743724fd110513213d8
BLAKE2b-256 da72b34f42b3d1e4bbdaeddbcdad5dfbf114ba3898b74209e2189d6e0368fea2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.8.1-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 3c2cc7ff73edfb186620f873f3a51b0ad12b1528c230badf3075a2dd6de857fc
MD5 1ae13f860e440c6ae0c4ea9eacf64106
BLAKE2b-256 2f921d19e4e816a1cbf01cb1627538c943de6416b544f54476008509f6871e61

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.8.1-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 4b49ee1f6b2be206cf17952a73061e8be96cbe8327ada7f903ae5c5425b3e033
MD5 c189feb94ef40c96b2e4431d5709aa68
BLAKE2b-256 1e0a568cf9144a12fa11f74d65a3904903c6c17a6edeef65038be79ba8b1a09b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.8.1-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 883e88f883077c94bd43f6d1f7cdafe3b3fbd913fca23f8f572a1611285d723f
MD5 55255a77760cc1d217e5013b269f8a14
BLAKE2b-256 6e686a86d5243b60ab827d74f05d2305c8bc3815e89ebf515f37fe21dfac6957

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.8.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 8145d941528ac487617619ca944d8ee1db8a5dff74dafdf06cc5a90415b9cc70
MD5 1df52bdfc993b760d561704dd194a4e1
BLAKE2b-256 dfa9a2aec39b6a2df57debb7798c01f903cd078441be64f21e8f03c7e6a279ac

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.8.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fa38e4f9f9389d1144ec93c665df98225038237ce34ceef291291ff295c822a1
MD5 7a94b1a0c924aa5eb6d42eeb83421185
BLAKE2b-256 b1435b4b91584567bce6de7343a199aac3581ab17457646b5620ce1697b0de1b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.8.1-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 1e301e16ddfd68ddc3d082c6ae5e4b09d779f363262c287aa3678b59639b8e90
MD5 8912fdb2b385b90fa12c0d129e0039f1
BLAKE2b-256 c37f9948e95959e04e0a6cdc1104b2867799408e50a54628e4aafe021356bb9c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.8.1-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 171bc36d8c2c7d730ffdab5867fdb74f61d7b16269a6f30ca71c134aaf36a722
MD5 33a9cb885d176f5408ab3e9c1c9ddb3d
BLAKE2b-256 1d28756653f0320ce64031545b84dc62316402246b567a2644b8c582a7f08ca5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.8.1-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 7494de0d164e933d755d081be3b3da2e7c1116b982571b7f990851a8544253ea
MD5 fd15a64db0094e193921cb974576cf3f
BLAKE2b-256 d2b3c246001edb62036f73830cf44d80f6c6867c114dd7c70f31322c82bcecca

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.8.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 5c76084f341ef0a1fdfe7f790a68de0d468b02247ecef8d5e4a77ae11e22e4b2
MD5 1907993fe318e6c2f18f97bf30d8be5f
BLAKE2b-256 d4fa38867ce79baf93c4430de4fe0271a4f25f47a7094650a53e8676d74a2a4a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.8.1-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2393b0fcb1ea86b95f80d7d42d80fb4a5006ba5bd1fdf29f3c5cafbf088af300
MD5 3ca2b4ae71a5f4361051480800dc4e23
BLAKE2b-256 daf34a4b159f1ab59a5926bcddb87967b16faed4875d31900c6ec92b2b1d338c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.8.1-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 e699cdba355aa9443f525a47a3d9c8803d1643b9dc62de8839cb7139d06da4d1
MD5 75c9dc412909b9b33b3b792bc11667de
BLAKE2b-256 27b9705bb50dc67dea6b3a57d0804c7e48ba1c05e1ccfda28d06c486e44287db

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.8.1-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 b065aec87606dba5f1c80f491e33875a8fa28605d82f6f53a155214818964644
MD5 2ff683ba9d8830e1760509dd721a38c3
BLAKE2b-256 b6594bbbad2cc90e3d73373da1a05871ad47758253543551e129f896998dd61a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.8.1-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 df09e6fcfc1f64259ffed504e85c7652957b964448212bdbbb4dc59f8909a4c2
MD5 40fa2212f859027acc0e7bb2ccac5ed3
BLAKE2b-256 9cbf265bf6474677a529746d1cc808632c7e31fa440e4443e7abccf7e8dceb84

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.8.1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 3a0ecc5ad56f5ea3702416f32b0e11540881d4f34adb75e01a4ff84b988bc19e
MD5 e3186a292a76c49818fa9d69d6b2838d
BLAKE2b-256 0352242d3319c708cec9c7b0788c74904680c7804c3ddebdcab8c62a1aef9063

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