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

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

Uploaded Source

Built Distributions

memray-1.12.0-cp312-cp312-musllinux_1_1_x86_64.whl (3.9 MB view details)

Uploaded CPython 3.12 musllinux: musl 1.1+ x86-64

memray-1.12.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

memray-1.12.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (4.8 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ i686

memray-1.12.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.8 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARM64

memray-1.12.0-cp312-cp312-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.12+ x86-64

memray-1.12.0-cp312-cp312-macosx_11_0_arm64.whl (890.1 kB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

memray-1.12.0-cp312-cp312-macosx_10_14_x86_64.whl (839.8 kB view details)

Uploaded CPython 3.12 macOS 10.14+ x86-64

memray-1.12.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.12.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.12.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.12.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.12.0-cp311-cp311-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.12+ x86-64

memray-1.12.0-cp311-cp311-macosx_11_0_arm64.whl (891.8 kB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

memray-1.12.0-cp311-cp311-macosx_10_14_x86_64.whl (845.5 kB view details)

Uploaded CPython 3.11 macOS 10.14+ x86-64

memray-1.12.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.12.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.12.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.12.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.12.0-cp310-cp310-macosx_11_0_arm64.whl (889.2 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

memray-1.12.0-cp310-cp310-macosx_10_14_x86_64.whl (840.1 kB view details)

Uploaded CPython 3.10 macOS 10.14+ x86-64

memray-1.12.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.12.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.12.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.12.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.12.0-cp39-cp39-macosx_11_0_arm64.whl (890.7 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

memray-1.12.0-cp39-cp39-macosx_10_14_x86_64.whl (841.1 kB view details)

Uploaded CPython 3.9 macOS 10.14+ x86-64

memray-1.12.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.12.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.8 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

memray-1.12.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.12.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.12.0-cp38-cp38-macosx_11_0_arm64.whl (906.7 kB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

memray-1.12.0-cp38-cp38-macosx_10_14_x86_64.whl (858.7 kB view details)

Uploaded CPython 3.8 macOS 10.14+ x86-64

memray-1.12.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.12.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.7 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ARM64

memray-1.12.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.12.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.12.0.tar.gz.

File metadata

  • Download URL: memray-1.12.0.tar.gz
  • Upload date:
  • Size: 1.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for memray-1.12.0.tar.gz
Algorithm Hash digest
SHA256 3b61c199a60197ae6164a2b44cd828c52de24083ecc49e9ac7d6287686bd68f3
MD5 9b06f639bfbbd4b5cb6a8b98495a9aa8
BLAKE2b-256 888b0a9854e5b6ce0875f2e2ad163cfecdb8de59fc1a2f1b9a1cb7c683a67826

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.12.0-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 0a43b7ea24db0469b26dd2da6058f24bd0882fae35eaff9eb3dd572234869771
MD5 3164d8ea97298506e2454cf37606621a
BLAKE2b-256 1a0ad153c8dd1ffda2bf5a6eb92dc81e7ec9874d717aef36d5e6cc79e8ea651c

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.12.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8da8a7088b7b434d77ee40c843c5a66c4c10ded711f876122fb661265a950250
MD5 e4f6b58f5c9a99e52d1c631eee573cec
BLAKE2b-256 f368d463f7974dc04164e2dced44de325e4b5f3416ba023d9ba358fdf0f9bef8

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.12.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 ee72ca364f65f8a74da2c16c17ffb6768331fae9a14bec955932d2a3203c389d
MD5 211bd2ad6121b1a3623bd8d9449414cf
BLAKE2b-256 052dc2dd9b8b47bd3c60cce70b25b69696b90f2f43edc752738a27dd8128b2a1

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.12.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a60d2a70077f091f51d9bacb387d5f3d9db37a409ab6b071398a5b5eccffe3ec
MD5 b79280f08b2c4323bb5407b1aef85639
BLAKE2b-256 279795dec4825eeaca6e5e4225ad4f3564282bb7c97b3811c0b876f447a13394

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.12.0-cp312-cp312-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 ef93e74548d55533f02f7e27417f88e2606f54f5cfd58ed84e0f2d6839e4ad48
MD5 1f60b82efe0d9c7736cffa0d9c0f9846
BLAKE2b-256 e01c660a5536de9359e765dc2199a5795d813539aeca66657e4e19a8d22be556

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.12.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fcfe985ce1b019987258a2edb71edc07a38d96d9c0ab28a91880b1e048b68d8e
MD5 7bed610ddab62720c04e9dfc64893942
BLAKE2b-256 932dbd86c66672ba855a4f53d771d10d08eb9536e6bfb8c4f03f9d0e96ce9078

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.12.0-cp312-cp312-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 22f10a95e74675ce96ae29e968a978e27b9ce466bdcaa322c15edb6ea6ff661a
MD5 7ce3f80285d59011cb4594f56dce7d2f
BLAKE2b-256 d596b644ee22c685baefc28e58c02480337fdb139e6ac40822a7b49e9b4503a6

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.12.0-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 df5ac32d9e4458af1a8c7d6864095c8dd3bbbad4978fead3dd2d939368b1606b
MD5 9e7a552fad7071d5c1d174ff7dbdd9a6
BLAKE2b-256 f50356da388cd6a10cf097a34f260a455305099a457f2611e1414aac42d6799a

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.12.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3236d5fbc2576847d6c40741b61f6fa2fe5b0079011c4d3843bd9fc3d0b86ba7
MD5 22347f10be53152f5c9f2b0b0789708b
BLAKE2b-256 d65783cb83cc3412014f180c90a1c8800e264e03fefc071a523d7e91126b23b4

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.12.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 3abf058226e72caef0d68f2e850954668305934c20d2ccfef89c3eac2ccf7a40
MD5 6a4c57ac2ffbdb95a5adfe4878d56a7c
BLAKE2b-256 640686cd7890c27da75a28f51658b044d24597b790d065952f113099b531a5d6

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.12.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7252b98ca98e0ce6f95ad81d161f468ce9ada12e66e64e18e8e7c3b95b203035
MD5 fd05b20848d7e2517a7e0a72e1b9c10a
BLAKE2b-256 e9068c9b50ef5f4088a7ed8098df5c5e437e4cf11f434c78410e3476ffc14abf

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.12.0-cp311-cp311-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 7ab5d0d7c566fc5f9bec28276a5219b20e6b5df4cdce16e506d9eda6cbb207e1
MD5 8a8ed868e4796cfabc6f1c8bc094bfad
BLAKE2b-256 746bff7dc66b4d246b35bbdb6ca6e4d14d91b18a8a5c5472fcd2e908958769b7

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.12.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 21ec3d82f9535dd66bdad2a33aeb46ebc03801b7d9db1f4ca1c96bc96d2c6253
MD5 e11b8a02a6f99c00aed766c576363801
BLAKE2b-256 9c13058b4732fedb66a84ac3bad612f552742b3ba505c8b11f9c1f56b814719c

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.12.0-cp311-cp311-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 ff94c5471d72e616d9b80f7d5b7839b9de740088f04b2b5a13eb457d571db073
MD5 22810bd2db4867025e1b73470ee06dd5
BLAKE2b-256 3ccf492e77a12b12d17e4829425ec09348b99d0fb384fe5ff91e37588a3014f4

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.12.0-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 621ceb522614e0076fdec78ad4d4ef34de6eeb62f63bbdd6a27c56d5ef07bde8
MD5 f04288ab4adbde17047f445daa60f3d5
BLAKE2b-256 ed19dbfb16aaf9958ecceec2ce6a4a3bafe19344fe5d86dd4b19ab0eb02bbebd

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.12.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9a2ad07e0a0bcf15772f7887a1739e1e0679223ee4025493e0011ef35e30aa75
MD5 1de58d0c434434be7c69164c726d93ea
BLAKE2b-256 9da3785a3e554220f831ce6dbae1f0c21f28f5c292981d0935d5211a6210f945

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.12.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 28f543f5c42491e233dbcb4c87da4a890cef1634b1cd6d0746092d74dc5adcb0
MD5 f259738aa5bf128780a0370125e7d02c
BLAKE2b-256 e61128498b9a46dc2204439110f73743f50ad2d965818f6a175687dac03e2d09

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.12.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 df79afd83b4c3b5139c7d47ca1d40f5859d7c5be38759a4a698de181414b7cd6
MD5 ec8910b60c4b174439f196e567b6dc69
BLAKE2b-256 6dcd3a54d39f3056dbf9faa4349d2c0dcb18746b973417dfaa8bb90b6aeb14f9

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.12.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 64b4e881262c60768ddfbbf062f3861f2bd0cd04414d4ee4cf4f8834285d3d7c
MD5 00dcb82e5ec0672a6ce3d591ceb0a6bc
BLAKE2b-256 f6027c39743d39053a263fbc264f216fa4849890937a3405b8ac003dcdacf466

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.12.0-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 27b6ad53081b2f588485393df6498be6d07c2331435625472dc6111b265bef44
MD5 a865609e9e5f3e514dcd93481d9793cf
BLAKE2b-256 1946902cb72144adde9256767c59e62a140258947dd36acd0906bc3b4577f5db

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.12.0-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 bf282a90f0f01ee419d4c184416ae22f7e26450dd80897fb7998633ffde4ffab
MD5 a09a4cf2d184e5e76df7fc1dd5bc0b9e
BLAKE2b-256 64f2edd0c2f6a6339de8883811408e042f5d6bee7b92922246a1ac774187e99b

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.12.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5693b6210c51f1e66ce33a8d6a6fb5bd84c83a3fca644244c7f417e74cc93480
MD5 76037351d724afbb8747ca8acc10a81b
BLAKE2b-256 335376890b455432d6e8e19e295d44775eefc0f2636c3059ac218e6b01503bb0

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.12.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 b2f39ad9fc06ddc6f9e506e05a2e4036a6678447673f9134a1827266485a124b
MD5 d46f86ee6b8f55a4630f59593a45a6f8
BLAKE2b-256 406ec08fbe1e28f3b4b32285775a6e7faecf824ae4cbe6535c17ab8d5760a9fa

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.12.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 e6760685eb69997c8684358f1070c7252929b2b0e0863ed9adf7c684dc6cdf99
MD5 ee15b0de91306400bbe7ef2e6e41d835
BLAKE2b-256 e9fa44e25621b695cc5a1c2b6204a70cd8e17ec58f7d3b7e5800170eabb59ab5

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.12.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f464861ddce2d4322412f2d408b796027716a623ef67ada9e4fb95300691dd52
MD5 11cdd2fd4d1e65b48a9aeb45d4644c8e
BLAKE2b-256 867d10093b5f46144fc5a990f8759ea3d56a3a8466519e85c436b27111d4f844

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.12.0-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 ae2176753be2157235ad766ec662cd98f1d78de2581b30366942c696b9f8da05
MD5 7fce96dff40c209ada66ecc468200f7f
BLAKE2b-256 a512f32fd01d6544bc2dfdf64ca00b5e25e36a12a272703d956b5a62f9074d39

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.12.0-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 8e0dd3e4440c9d64e174cc9663cb6a8ccefa0f45ee967b4de3c31f1d620008e9
MD5 9037c8c7515e241806d2d384b165445b
BLAKE2b-256 603ffd5dc6d88d8049dbdb57718122ac0a82943da6bbf637d103cc08a90c8dae

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.12.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f8031156adf4a4ab471c5b835bfa773e2d36a3bbf4338236969d8c0b9d76beda
MD5 e417f40e2103bd79ec6ec3061bee6564
BLAKE2b-256 666ad0361879fa588506ac6d35cd8c8af92280c44d90c143b861f6da1fe24a7c

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.12.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 702a502b8c9a2ca64a34605aa32381f94c6443ba6608a6bf877e10f94d342de9
MD5 0fa067bfc551ab637602c077a8c23931
BLAKE2b-256 111406053b4fee4fba9752699ca790d16be46b78dca803db482291877ab926c4

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.12.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 2bdbcd44e31fe27822b1920814f87c9cc305d731d38c5d32d93f5f9bfa797a9e
MD5 15619bf2035485ed5ebdd1f29430ecae
BLAKE2b-256 db32077608d95c2d7e977dc1593ea404000d10c149c9afe469b98ea4bc953ff4

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.12.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dee3eff75b6a47841fb58c909723c140e72915de24a712e1ee4c157c3e1b44af
MD5 fa5cb645af08757944058eb4fe3f76cf
BLAKE2b-256 eafb1e2b4ec9990e09d1a092277f7a4b9c627f16c2ed2bf4d0edc3c26190d973

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.12.0-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 d3367e3748c64797c4986fa543e784067c5de08037621f5f1e628d6fc98cefe5
MD5 a79431253efda1bb8d5241fe3e35c6a9
BLAKE2b-256 b2b5253cae9ac4683676822f2d7c1b0a820e3a35fb00a56283e224a8f2668d61

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.12.0-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 dcc2f96f7cdd0a7bbfd86dafad4e76bb6adc4f41560f474185c8722ed6e653d1
MD5 a0e746af2c49da96c736e8a2befca4f0
BLAKE2b-256 140913773133931badda9675103ac514cfb141570445c41049263710e0fc7e0e

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.12.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 57f04aeba911dd082c7c057e79bb338449621e58ae4e885dde05b5a45d6edcac
MD5 4d2090d47240467d6f87065e57c7da0c
BLAKE2b-256 5ec44c09fdf15694ff8a8239a332d2fc20c5388680e03ec4b6b0048be10e8dea

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.12.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 a7fd3e5f614666faa380a3094ac03793ada9c69239ea4a4716e929efaa7d8ff4
MD5 5206df94fbfbda3ae945badd05f86f56
BLAKE2b-256 19c83184a595b456e82008761e5f9691ed066c5fb2320de25dc5dfa8d6f9af31

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.12.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 2be213607228a56ee2e9de598cd4b14aded45e19d404fba1945d2008fd4e0bb6
MD5 c91b1a4eb8a31f889619ab9ae8238401
BLAKE2b-256 c2ec5e2d0192a34ecd22d4b9900806c9fb672c0c84557d1843007a125a3ff335

See more details on using hashes here.

Provenance

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