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

Uploaded Source

Built Distributions

memray-1.10.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.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.8 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

memray-1.10.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.10.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.10.0-cp312-cp312-macosx_11_0_arm64.whl (882.1 kB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

memray-1.10.0-cp312-cp312-macosx_10_14_x86_64.whl (854.6 kB view details)

Uploaded CPython 3.12 macOS 10.14+ x86-64

memray-1.10.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.10.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.10.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (4.8 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ i686

memray-1.10.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.8 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

memray-1.10.0-cp311-cp311-macosx_11_0_arm64.whl (888.1 kB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

memray-1.10.0-cp311-cp311-macosx_10_14_x86_64.whl (858.7 kB view details)

Uploaded CPython 3.11 macOS 10.14+ x86-64

memray-1.10.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.10.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.7 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.10 manylinux: glibc 2.12+ x86-64

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

Uploaded CPython 3.10 manylinux: glibc 2.12+ i686

memray-1.10.0-cp310-cp310-macosx_11_0_arm64.whl (883.8 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

memray-1.10.0-cp310-cp310-macosx_10_14_x86_64.whl (854.2 kB view details)

Uploaded CPython 3.10 macOS 10.14+ x86-64

memray-1.10.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.10.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.7 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.9 manylinux: glibc 2.12+ x86-64

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

Uploaded CPython 3.9 manylinux: glibc 2.12+ i686

memray-1.10.0-cp39-cp39-macosx_11_0_arm64.whl (884.9 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

memray-1.10.0-cp39-cp39-macosx_10_14_x86_64.whl (855.0 kB view details)

Uploaded CPython 3.9 macOS 10.14+ x86-64

memray-1.10.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.10.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.10.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (3.4 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

memray-1.10.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.10.0-cp38-cp38-macosx_11_0_arm64.whl (904.0 kB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

memray-1.10.0-cp38-cp38-macosx_10_14_x86_64.whl (873.9 kB view details)

Uploaded CPython 3.8 macOS 10.14+ x86-64

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

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

memray-1.10.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.10.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.10.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.10.0.tar.gz.

File metadata

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

File hashes

Hashes for memray-1.10.0.tar.gz
Algorithm Hash digest
SHA256 38322e052b882790993412f1840517a51818aa55c47037f69915b2007f2c4cee
MD5 0d92e9a330feec1735539c6deaefc02d
BLAKE2b-256 d42841748b83b7db03d9e3d25c19e48851af62505ba88100d1e25fc3b7d36027

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.10.0-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 6b311e91203be71e1a0ce5e4f978137765bcb1045f3bf5646129c83c5b96ab3c
MD5 6ae8492f0487908a6caf45604b0540ed
BLAKE2b-256 76afa5229a4c55d5168133beae4d1eb0f64506c7652f0b85e35c0201664afe1b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cf6d683c4f8d25c6ad06ae18715f218983c5eb86803953615e902d632fdf6ec1
MD5 d807dd167fcc45062fbbaccabdc698cd
BLAKE2b-256 0a071a5d44d6bdaf8bf216b7484ee90994c34518c63f3f5ea81f4a74f15181bf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.10.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 0a21745fb516b7a6efcd40aa7487c59e9313fcfc782d0193fcfcf00b48426874
MD5 a55557a336dfd14892748077f0fbc215
BLAKE2b-256 5f9462bd9394142510c3513942ae69007717fc3b8e198a247d566be0d58dd394

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.10.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 663d463e89a64bae4a6b2f8c837d11a3d094834442d536a4165e1d31899a3500
MD5 91b29094bb8d811fc7ce1fd265100dc2
BLAKE2b-256 77ef6e0bf9335f396c0f2325fe3f4800da947e4d3ab2d70acc516bbe84c19563

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.10.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 95e563d9c976e429ad597ad2720d95cebbe8bac891a3082465439143e2740772
MD5 5b2db1655d4a9a3366776d54d9d48a2f
BLAKE2b-256 0565dd21aad64e660e7a5c9133014f4b3fe7b536d520db562b4bea6ddc299f9a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.10.0-cp312-cp312-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 b75040f28e8678d0e9c4907d55c95cf26db8ef5adc9941a228f1b280a9efd9c0
MD5 a858baaba6ab811120307efdce07c0bb
BLAKE2b-256 f74302d4f5b444eced51a0096e4c42ee387182f3efe4718c591bf3f8f874df95

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.10.0-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 ce22a887a585ef5020896de89ffc793e531b65ccc81fbafcc7886010c2c562b3
MD5 9ed2e26ae2e3a7ca9030da014b24ccaa
BLAKE2b-256 47afe0be8b216f7fd57ad49195cf65278a5b0a087e35b6f48a72e4b162c2c75c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3c401c57f49c4c5f1fecaee1e746f537cdc6680da05fb963dc143bd08ee109bf
MD5 e3454afa57f7afb84160e05e0b49dcd1
BLAKE2b-256 8ec68e7ac4c04344890647c5d0a75d07824ab428b720d8a73aaaa22d0cf5d8bc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.10.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 22f2a47871c172a0539bd72737bb6b294fc10c510464066b825d90fcd3bb4916
MD5 39462c9d24b1c67b039560c06a353cef
BLAKE2b-256 fa54e93c3bca0fcf7f4bb5d460365e79ec697f0483ffa3d1bded8ebe45f65de3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.10.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c3a14960838d89a91747885897d34134afb65883cc3b0ed7ff30fe1af00f9fe6
MD5 ecf4e13c64eb8cb91120c0e50284aba1
BLAKE2b-256 52b460cb64eb433d4bcf2fe72122588ff63cc6846d6518f9899b99f233344b8c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.10.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9627184c926252c8f719c301f1fefe970f0d033c643a6448b93fed2889d1ea94
MD5 fac1db212c7fe348659bde2c3b221d8a
BLAKE2b-256 f2ecc2c14d53cb3bf6f5372211a46dabe59dbd00c2f42395052d4200d23ee1f8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.10.0-cp311-cp311-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 53a8f66af18b1f3bcf5c9f3c95ae4134dd675903a38f9d0e6341b7bca01b63d0
MD5 d6e2ce976301ca95e54e816819e44eea
BLAKE2b-256 d6bbb6b9ecb58e09979f0c63eff36cdf6ea26a4b055bbc65a06bca2bcfc26c65

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.10.0-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 2ce59ef485db3634de98b3a026d2450fc0a875e3a58a9ea85f7a89098841defe
MD5 6e84335a0ace08a3bebe37eb1d3ddc34
BLAKE2b-256 8f46cbf8a6c47c0ad71d904c9753d5f39625ae1a0c3118df3d7e59851f2d6a41

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.10.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c7aeb47174c42e99740a8e2b3b6fe0932c95d987258d48a746974ead19176c26
MD5 df87e323400fa9b374fb78d47ed14cad
BLAKE2b-256 a735e6d41ac361138826c1181c5a92793f5ab90a80d5b536f71bbd0f0016fbcb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.10.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 f16c5c8730b616613dc8bafe32649ca6bd7252606251eb00148582011758d0b5
MD5 1c5c3b1d1f2c427bfdaf31b9844e7a2d
BLAKE2b-256 577583e0ce9d4fb036ed0455a4155bebfb9dfe859ab51c6c23242e1d8e6ff82a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.10.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 23e8c402625cfb32d0e9edb5ec0945f3e5e54bc6b0c5699f6284302082b80bd4
MD5 607ad874e7813419a0f2c78c271f7bc2
BLAKE2b-256 3f5561f5594f10206a551f01d28289d865f641a29836fb547e26c36d662c8b62

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.10.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6937d7ef67d18ccc01c3250cdf3b4ef1445b859ee8756f09e3d11bd3ff0c7d67
MD5 f30fe2d9f8b2e1bb26e95c9a07da8a1f
BLAKE2b-256 53bf4f7200e62d0c19752fa99e4d891bf9e3a5e5ba504343d6c4b9de642a76c7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.10.0-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 843a688877691746f9d1835cfa8a65139948471bdd78720435808d20bc30a1cc
MD5 e46da7b751608a1050489f3e699fd008
BLAKE2b-256 ddf2d953b9fcb1879b7e7fa6e5aa910ecea01c7cee20886d1573e7cd808e3b37

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.10.0-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 391aac6c9f744528d3186bc82d708a1acc83525778f804045d7c96f860f8ec98
MD5 06daf2088ac1c3ccd0aae2576d5cf476
BLAKE2b-256 3d1170bc2158ad5123cbaa71a827261e8190a16e8b5542924e622df283285d25

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.10.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 566602b2143e06b3d592901d98c52ce4599e71aa2555146eeb5cec03506f9498
MD5 831c3d66e7be4acb124b55127be3e36c
BLAKE2b-256 117bf56b802ff45d89618e8afbca55ff96dbf191124f40fd5d22ed5ac39d2f26

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.10.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 85c32d6613d81b075f740e398c4d653e0803cd48e82c33dcd584c109d6782666
MD5 960148a98f18bb2a866b64637be8243f
BLAKE2b-256 56fe00acf6f7410d474fa29f713cb1cbfff9ff005a3bbeb1edc9ca2245ce2441

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.10.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 8d56f37a34125684746c13d24bd7a3fb17549b0bb355eb50969eb11e05e3ba62
MD5 01e8baa88cf5d0369942a97c1bdebcb7
BLAKE2b-256 a81c8ea6dd92a0d784eec1bc74a609c15d22fe770ad219173b45dd739143cfbe

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.10.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3a8bb7fbd8303c4f0017ba7faef6b88f904cda2931ed667cbf3b98f024b3bc44
MD5 289ea0e700ed242b536afe72905851ed
BLAKE2b-256 c447ce487d3c7fa6a3b3038c168816c267006898bba312ef046c59147663df2b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.10.0-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 38393c86ce6d0a08e6ec0eb1401d49803b7c0c950c2565386751cdc81568cba8
MD5 e50a54e6b114cdefa521eab47fa0afdf
BLAKE2b-256 db33bdd9a87ccd6077044abae1e55c3601e8f1f0ab0b14b6d6f0ed9c91ec7727

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.10.0-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 92c372cb262eddd23049f945ca9527f0e4cc7c40a070aade1802d066f680885b
MD5 cff5c1a87cd1c3da98e62e4c9ee33b53
BLAKE2b-256 8c86950a9809975bd5446af8c0a34aefcad45e140d60a01e08a403c82cebe7b9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.10.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e356af93e3b031c83957e9ac1a653f5aaba5df1e357dd17142f5ed19bb3dc660
MD5 7608cf3443eb1ffdea00a1862159ac6f
BLAKE2b-256 e04cb2289c90760e4469e3b7b08df285a9527f64ecff47f980834930c579ca5e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.10.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 6fd13ef666c7fced9768d1cfabf71dc6dfa6724935a8dff463495ac2dc5e13a4
MD5 d863bace082f44740a181acb00b65146
BLAKE2b-256 68c8eea91d55fd8ace2ad9ef5b722ea86411129e9187e0673d33d4f2e5fa8827

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.10.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 898acd60f57a10dc5aaf1fd64aa2f821f0420114f3f60c3058083788603f173a
MD5 0e50c7c0551fd1544c41097998f27c88
BLAKE2b-256 32afcf7312fed8523d349db6aaaea02412db9d307d6533acfad2887efac1a22b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.10.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8196c684f1be8fe423e5cdd2356d4255a2cb482a1f3e89612b70d2a2862cf5bb
MD5 e28e6fdc0a7c3412c45a85b7e9240cbc
BLAKE2b-256 886eec005eae3b61dddb58cd03f7525207b3e052dd018ae48397c6320fb88a23

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.10.0-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 b681519357d94f5f0857fbc6029e7c44d3f41436109e955a14fd312d8317bc35
MD5 65834fb596ff78bb9cd46545d0a45ea2
BLAKE2b-256 7d74988f1aed147d9a207def198e7a90a8624a7ee4100655b1394ba6dba27a55

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.10.0-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 4eba29179772b4a2e440a065b320b03bc2e73fe2648bdf7936aa3b9a086fab4a
MD5 1b52b95da48caec829add4beb24a7766
BLAKE2b-256 54464d6573ea10b1c007367bcdc18ff72f00b7cc7951d8ef588edd2cbc49589d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.10.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a9e985fb7646b0475c303919d19211d2aa54e5a9e2cd2a102472299be5dbebd3
MD5 448c8cc65699738a2d2553c2a55cba3c
BLAKE2b-256 19b384c33ee5c42da6e9c6fc0d49e49d47eedd01f28e1cc1b0a7d50c1c92a54f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.10.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 322ed0b69014a0969b777768d461a785203f81f9864386b666b5b26645d9c294
MD5 92669f0a89bebafa763297dc1ba9be22
BLAKE2b-256 231e102068cdef7df02149b9955a79766c577e549962c5cadb53f5c136d4c492

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.10.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 68bd8df023c8a32f44c11d997e5c536837e27c0955daf557d3a377edd55a1dd3
MD5 44969431970c20fa094944b24ef1a73b
BLAKE2b-256 4cb5393d6dd7a7decffd6fd414d69debc4b4124b3172175098c16ecc45d27086

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