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:

  • libdebuginfod-dev (for Linux)
  • libunwind (for Linux)
  • liblz4

Check your package manager on how to install these dependencies (for example apt-get install build-essential python3-dev libdebuginfod-dev 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.13.1.tar.gz (1.1 MB view details)

Uploaded Source

Built Distributions

memray-1.13.1-cp312-cp312-musllinux_1_1_x86_64.whl (6.3 MB view details)

Uploaded CPython 3.12 musllinux: musl 1.1+ x86-64

memray-1.13.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (8.4 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

memray-1.13.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (8.1 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ i686

memray-1.13.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (8.0 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARM64

memray-1.13.1-cp312-cp312-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (6.4 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.12+ x86-64

memray-1.13.1-cp312-cp312-macosx_11_0_arm64.whl (897.2 kB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

memray-1.13.1-cp312-cp312-macosx_10_14_x86_64.whl (926.3 kB view details)

Uploaded CPython 3.12 macOS 10.14+ x86-64

memray-1.13.1-cp311-cp311-musllinux_1_1_x86_64.whl (6.3 MB view details)

Uploaded CPython 3.11 musllinux: musl 1.1+ x86-64

memray-1.13.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (8.4 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

memray-1.13.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (8.1 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ i686

memray-1.13.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (8.0 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

memray-1.13.1-cp311-cp311-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (6.4 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.12+ x86-64

memray-1.13.1-cp311-cp311-macosx_11_0_arm64.whl (899.9 kB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

memray-1.13.1-cp311-cp311-macosx_10_14_x86_64.whl (926.2 kB view details)

Uploaded CPython 3.11 macOS 10.14+ x86-64

memray-1.13.1-cp310-cp310-musllinux_1_1_x86_64.whl (6.3 MB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

memray-1.13.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (7.9 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

memray-1.13.1-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (6.3 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.12+ x86-64

memray-1.13.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl (6.4 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.12+ i686

memray-1.13.1-cp310-cp310-macosx_11_0_arm64.whl (897.2 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

memray-1.13.1-cp310-cp310-macosx_10_14_x86_64.whl (921.8 kB view details)

Uploaded CPython 3.10 macOS 10.14+ x86-64

memray-1.13.1-cp39-cp39-musllinux_1_1_x86_64.whl (6.3 MB view details)

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

memray-1.13.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (7.9 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

memray-1.13.1-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (6.3 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.12+ x86-64

memray-1.13.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl (6.4 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.12+ i686

memray-1.13.1-cp39-cp39-macosx_11_0_arm64.whl (898.2 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

memray-1.13.1-cp39-cp39-macosx_10_14_x86_64.whl (923.1 kB view details)

Uploaded CPython 3.9 macOS 10.14+ x86-64

memray-1.13.1-cp38-cp38-musllinux_1_1_x86_64.whl (6.3 MB view details)

Uploaded CPython 3.8 musllinux: musl 1.1+ x86-64

memray-1.13.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (8.0 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

memray-1.13.1-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (6.4 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

memray-1.13.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl (6.4 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ i686

memray-1.13.1-cp38-cp38-macosx_11_0_arm64.whl (915.2 kB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

memray-1.13.1-cp38-cp38-macosx_10_14_x86_64.whl (944.1 kB view details)

Uploaded CPython 3.8 macOS 10.14+ x86-64

memray-1.13.1-cp37-cp37m-musllinux_1_1_x86_64.whl (6.3 MB view details)

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

memray-1.13.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (7.9 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ARM64

memray-1.13.1-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (6.4 MB view details)

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

memray-1.13.1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl (6.4 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.12+ i686

File details

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

File metadata

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

File hashes

Hashes for memray-1.13.1.tar.gz
Algorithm Hash digest
SHA256 2149450064392aad2df9ba641b78bba979d1443084c074ff454830a71aa9f095
MD5 b3ad7b746baf0c7496d2e10c5ee62d16
BLAKE2b-256 40e2d081af48576318fe5570a0d2c3c78dd487afdf92f8a3cb1e375924f4329c

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.1-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 77689e659b22e39b585cf166037ece95734d55b35a581a19db0eb5769005819c
MD5 fcebac23b2443b0cb82cdf8d050c94e3
BLAKE2b-256 277dd03dddd32843410d58638e7e71e11e3e53703147a5b7d44d893d2c5e253c

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e1a94a258acc32366ef635bb0870f0d3e80279153012c3655482da8c5c8454da
MD5 f55b37917f3b1cfbac3c7cf6f4c3d10c
BLAKE2b-256 d0dfd1ec0ed43044b323d2439ee4b085b28739206a3c57c6814ae22d997e505a

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 c652762aa761c7b546ad5ef180b44f204ebc995e0e7efe86b21086b0bc3c665e
MD5 ea9f6489b0e18192fa7b6ec109baa3f8
BLAKE2b-256 2bf3f9cc53d0c107bdd2354ffcada31e4112c58c4ad250fd914f7d40b9701d92

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c2c9896719d82240291f7ac81ba2509a8065f4a7829fc8219e0890e68877f497
MD5 7f1f3794cc132a02074b81254381f89e
BLAKE2b-256 85d579715fde6ead7da57de99c211c526cca3280f87427d1c004a6a40a18d81b

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.1-cp312-cp312-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 e33f8320e8578d16e371b90cd2c792e1414bfe28173c7f977d6b440686a66625
MD5 da762631a3b1bb686d8dd9f57982a8fa
BLAKE2b-256 61b220fd8378f36c148ba3150e95dcd4070e85aa0d33ceb6f728200ebe5a4f37

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 06d5f9ab8b4952631c030bfba74a385686f2da11471e13d838184b32d6582edb
MD5 0e4cc932939d8c093085df620c251e52
BLAKE2b-256 35acf746b818b5eafe56df3c776f3505e7d8f14834b1a79beadec05f2b6f4b97

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.1-cp312-cp312-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 a86f80ced0bdf49e2cc637e112664dce6ded43a802c0fe99ea826f1a717fa252
MD5 68ca5ce756377c70255afd7dd6a29ed4
BLAKE2b-256 9596aacdd040712b634cef9572f08cbdfbc443c6da8cb771b9d45802f408ec1e

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.1-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 659c8ddcae04bd8bc627836663a90eec077d831d904dc8ed7ce42a64a96fe8d2
MD5 1cb4440ecc5aa7d70eb9d3cb5d3ad789
BLAKE2b-256 49dbd19d80d0e761e08a09f4fc580bb6574ad5f88e5954e52e6caba53225adf9

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 748c7ba3180d84a5ce6dfc413e7f6127d887341ea75ddbffee150e0124cf810c
MD5 fdc84747eda198f2538a40b66343efe1
BLAKE2b-256 9b2f0b65a35cadbfef9090840c080dcd098034232641fca5ffec507c06cd7d6e

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 3d6bdaf8a4499f8dc3e1f6781cab13f95ed052f77b0a2ca0ef63ac851296cc9b
MD5 319006f7b24704eb1b7e8f87f5b4c34e
BLAKE2b-256 0fd857dd9796eaac5f9752bb0cb0991e5da78be2ddc3ecac760b97687b5af570

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 74871ef2047f30d0f98994f56563fa8be85515679fbc398006246339ff4ace7d
MD5 44f6889056b6f76b6ead70c4613d054b
BLAKE2b-256 2586e266a2eaa6b26236c84736c4828c793db9e0090e6b096bbac8b4eb3571ad

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.1-cp311-cp311-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 9d9e2604dd2b2025d5f0012e848cbc5357a15a4d27297cde5f76dd2fccb1873f
MD5 8cd223d7d45f7d579717127e49f4a7e8
BLAKE2b-256 2591fa56641289812dcadc4d86505ee561abdf66126f5f610968923a51d0f542

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dadd7afa44df07074f4d887587e8241e085d9727fcf5b5097930c05ad054027a
MD5 7cdea39fd9b1afc4a674b18cf7dd6542
BLAKE2b-256 3884344aeb0cf8ef1f6801afb9048ba4c23e6e2ea1f693c5f11aded508e9f65f

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.1-cp311-cp311-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 71c5c8bb5d7ad19b3027efc48a792cb35bda7b9e1662b2c5f23af3f8f7374eae
MD5 e8d85772302592ba7b3529f219281736
BLAKE2b-256 9754bd99cc50d429c865a4ff6b11f69141eceeb02d591b3301e403c060950126

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.1-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 4270998b8fcd5f1a9c8faff2ad4f46fed57191160e78183357eba7dc32d93a1b
MD5 94249bb73db97eeb20aa390ca2ae60a0
BLAKE2b-256 a3a7e76cf9f8b4f5c5c48fa03e813e58eecbf5d7ccc64b5d5c7f9113b7ddf5c5

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f4917e333290802d91d1823f34365670628b2b0804dba93150c79bf8b855f8d5
MD5 8723a2fdf5e4ded661ba9ea85d2daabb
BLAKE2b-256 3868a4c7f08c59776a7c78f1bd23d7cbe5cbded970f983dadc6fa9ef9ba572fb

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.1-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 8e3a5eb9bc01cdc2f916bae1615301347aaa252deb983d8277b0c9e4d4410e73
MD5 7d2af92212ad75e743c3b3f4ce1e2878
BLAKE2b-256 eda1df4851085358b4373af882d1e6460645a5a9e694eb27121e4dea1d650ae4

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 22263e294faffda1f8097b0d6e1d2283ca35a537d3e8f608244f48fd3f58d490
MD5 c623c27171f8f801dffa2f6206dc0cdd
BLAKE2b-256 cdb0ff3d3b76f0d4c0da42fcd6cc6c800bdccc29d26709f933bb05a7258cbde2

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 94eefd57a5e4f27ab97e976d732027957b15e3b9b561a643388dd1417380461d
MD5 5ca6ff82cfcad2a4bf9544d0390b7ed4
BLAKE2b-256 83e4f248617b78da6b5acf064898c1d81123d20a2d2eb5f00dc7f73b81d5d1d7

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.1-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 5aa567b5f7a3f67b40194dcaa3ef06557ebf088e67f7ee41e7154b9747dbbd8d
MD5 c32850b723ab5dccb97465f8918e863f
BLAKE2b-256 9ddbdf1cf8d8a65e0f54572a668c9b916490dcd6cc23c85aa7bbff712f40e151

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.1-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 31203c80094b3189ece8dbde39fbbef03bfa2306dd3b84a3463c6bbed1d8eff1
MD5 6ef1c2710b3de714f533f351387f8836
BLAKE2b-256 9f929a6699613d416b8859f196d6aff64734d4962224d2dbb7b6503a29e290b0

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 12decb3b154e335d67179332ff7818add233fc8cd94bc023af281656fca6c679
MD5 dcab2d10377e608960cf2ac31e97c2de
BLAKE2b-256 4021294c0d8a9567febd9e1a808617e2eeb05837d10300ccccbb0ad5686c18aa

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.1-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 4c54e5cdd500f8d8bb79a0c2e9e8569a1002083ba0ec72ccbd300f0cc61669af
MD5 1022a3c4740252228470138266f47781
BLAKE2b-256 c555151492144ba8b84c247be426db0e8f984b27d5e8594b3d466e72f3056d77

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 4f55fa2849e187ef6cf6aa5d765de58ca50b9afc45950834c65cb95b371b1654
MD5 caf161b59a48bf2790b23e4a375b405d
BLAKE2b-256 c1deff78a2aebca746b43dbe1560d6930e859fe1eddf86f483fe45ff28efaa69

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2890417e055b2d9dc9b8b5aab17c40d585f7f9767041e8e101553b1ca044c0aa
MD5 fd8a82f17603f2e6239947dc71b263bc
BLAKE2b-256 da2b8ce08783ea745563dffb37ef9bbd8994d813ecbf79dcf60c68a3f7cfe2f8

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.1-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 8aa27831a9ae93414965dd90ca7a3eb54b01f8bf0eb563598aa1f7bad1e88901
MD5 4a192c55d5d33d7344f10fa887b57902
BLAKE2b-256 f83ab99d06938ab21a594a654359d94a86051be933c6a5ea8b0382ff1e5c6a26

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.1-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 b2b65ac79215f1f588da5fbbecd76b40821265a0192308b0c4c64f624e0bd3d0
MD5 fde66c331b5f3ef8b0366519457bf7e2
BLAKE2b-256 f8cfb3aaa59f5f676142ab36b5b10e0b8c25608a15576672e41ffa596c855848

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d50e4aa2ad22abbb8e5a47b77cc8a62e0ed7864be154e2c87fc603699bc65db6
MD5 09f4eb027f1506a0187aafadc9b36a4b
BLAKE2b-256 d190d99e65fd46219e954c2f53c94b85da11ce7dd7501549ed655789ecb4d744

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.1-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 80e500ea2e21e3eb0b8c1ac938be70f1b1ce7f9c994cfe82700cad46c0744a6a
MD5 84cd80809b05dce30d494e42ccd1b485
BLAKE2b-256 fa7670ebb3936bb573ec2ba270834f7d8cb76521f278ea9970d3f047bfd53eae

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 380cb52917a939e11e3e08f685c911ae47bbd71a0e71d4d6e07ee67a6429ff30
MD5 087d01208833eac236b70866af1395ba
BLAKE2b-256 534a734a7e780dae1fdb73e59d0136dbbff8b42ae32f075466ba2431e5a77836

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.1-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 919655abc25a6dd846f6a38d0df178edf31e4011552f8545865413e5bd2e5646
MD5 4fc0db6a32903ca6b1586e229d91b4fa
BLAKE2b-256 a8708499488eaa7a9d81be7706690fbd541de7810e3ccbcc3c56bf1445de07ff

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.1-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 5ddbac56b11bf7053dbec99f1c4bad20269504e5cad2791f88fcb552d3338c73
MD5 82b4a2fca021f1d34cd412b00d6d1b6e
BLAKE2b-256 632403481ad9607dadd89522c2f62643c07f6b1aa25f59fc570e9904c7a1e36a

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.1-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 16d36a6c422acd939545e6d78e6d7290beb317d95cd4ef0d30d2218fa1dc7b39
MD5 057e5f29cb50908bfb48b04c7188dec5
BLAKE2b-256 1b1dfeddd6443a18efc4e662320832069ebf5638c6b659e771d618db0d230361

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 be195ef8c6b80792930331b74731362df06bb4c7c8f184b2d63263853e31f75c
MD5 aa4bca6e66395b5f8f813132bb75edb7
BLAKE2b-256 5042b796db2a8926217c4a43a91547402885b2c8ca3cd69604c547b23eb79497

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.1-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 45ecf8242128737502be96e4933269ef76d1c6a6e652e4a18f31e95de73e48af
MD5 44925ce1cb92751516e0772ad23d49fa
BLAKE2b-256 a9e3459180d64941b13ff9daf1d4d7b80800aa6d41edfd4887535e378698625d

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for memray-1.13.1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 fbf4d86148483c284e107829b43853ad07fbcc49ea2ad16d34aeb7467edb2d4a
MD5 4e4af023a6007d9fe70d6b0464a95728
BLAKE2b-256 640c0ea2ce1cdf384747ce4e0eef55ff947c74a351c57a9146c5cc227bb8910b

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