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

Uploaded Source

Built Distributions

memray-1.11.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.11.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.11.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.11.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.11.0-cp312-cp312-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (3.4 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.12+ x86-64

memray-1.11.0-cp312-cp312-macosx_11_0_arm64.whl (892.7 kB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

memray-1.11.0-cp312-cp312-macosx_10_14_x86_64.whl (866.1 kB view details)

Uploaded CPython 3.12 macOS 10.14+ x86-64

memray-1.11.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.11.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.11.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.11.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.11.0-cp311-cp311-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (3.4 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.12+ x86-64

memray-1.11.0-cp311-cp311-macosx_11_0_arm64.whl (898.0 kB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

memray-1.11.0-cp311-cp311-macosx_10_14_x86_64.whl (872.0 kB view details)

Uploaded CPython 3.11 macOS 10.14+ x86-64

memray-1.11.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.11.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.11.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.11.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.11.0-cp310-cp310-macosx_11_0_arm64.whl (894.2 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

memray-1.11.0-cp310-cp310-macosx_10_14_x86_64.whl (866.6 kB view details)

Uploaded CPython 3.10 macOS 10.14+ x86-64

memray-1.11.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.11.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.11.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.11.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.11.0-cp39-cp39-macosx_11_0_arm64.whl (895.2 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

memray-1.11.0-cp39-cp39-macosx_10_14_x86_64.whl (867.5 kB view details)

Uploaded CPython 3.9 macOS 10.14+ x86-64

memray-1.11.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.11.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.11.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.11.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.11.0-cp38-cp38-macosx_11_0_arm64.whl (914.7 kB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

memray-1.11.0-cp38-cp38-macosx_10_14_x86_64.whl (886.0 kB view details)

Uploaded CPython 3.8 macOS 10.14+ x86-64

memray-1.11.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.11.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.11.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.11.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.11.0.tar.gz.

File metadata

  • Download URL: memray-1.11.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.11.0.tar.gz
Algorithm Hash digest
SHA256 f72c111a4868d0f2b4e4fb9ba4da736db8c73b6fb0ac6e6f2deca8ee540eb688
MD5 3639693cd9f0e1cdb670e177c5585677
BLAKE2b-256 b93b0af451f20f8a72b3dcfdf65c6d5639469a92db3f333e3c344a6b5cc12732

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.11.0-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 0814a234cceaa664184ede2ebada2923e89c6b358b5bb9d71409a35ecae1623b
MD5 473ff1212e8c5079a5acb02197cd1eec
BLAKE2b-256 9d95b3120fbdcec99fe6da6ce9206a4db67abb972c613c106318a858a3ef868a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.11.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b8e02e8bbe03826c5e65c2cc28760b1d0bc59f9bee6d6769c01e800b50542f5b
MD5 b073ebc01f0d539aa768ea7d85ba9244
BLAKE2b-256 f78f0ef3674ac9a1f70bcc61135ae3d2f46a34194a11e9eb4448ad46b6be743e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.11.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 c3dfb2c20fbbb128489f7b9f5bd2704bae6f77dba11c253cccf8eb8299697fe4
MD5 44a81fe71dc3fd35385a2e3e3747980c
BLAKE2b-256 9d0736e3cb3ffed93ce5ffdb8a84139e87cf7709e972e05b25b7ec12c1c3948b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.11.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1534520c3c3e6b8234fe13c6d36bd74ab855dc19cef6e9d190a2a0b48fd2d83d
MD5 3bdff76579680987356d3a7dd87b5826
BLAKE2b-256 4dea272b04111072249e940482caca81fb9d35fc2f081c9ffb06455092ea7d5e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.11.0-cp312-cp312-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 9c577e81f8f7cd1418c7bfae4651d9bb3f16b72200e4b8d9b80c71aeeab64bb8
MD5 bc00c9850179ccec53b25429246fa174
BLAKE2b-256 445a70d69dc994ebb004a852bdcb67b303428ff0b9503881cc3a71e51b7b892d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.11.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ad1f2bb1223759e6b9755b6139087f6bcbaca1718cfed70c31aba0943542b431
MD5 f94ebdabec589ed9d9ccd3070cb2e6b5
BLAKE2b-256 391f7697b16cba0d7dbea71a0dce71b672067e383e5cee80668e3167bae9d060

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.11.0-cp312-cp312-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 0ed869e4a82722a4558da749f39d6079f2ef5e767d1399d2d090b04742e2b3f2
MD5 78cf73140deb509e9b8a9f4d2bc6bd42
BLAKE2b-256 05bd4e8945a15f407f253421e796898d9b44fb4e1bc902de1284b5a97d8ef5f3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.11.0-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 39bbf9e74c3933a84c22e047920a0f6e2d491ba943a39f4aa041f1c0422c8403
MD5 09c77d1a30a79bc4c802ab03eb7f0abf
BLAKE2b-256 40e353aa39e0ee3b2e9de0ea2d562de722609cb0a10d11b1d2f9834279ea6545

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.11.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3fc83741aedd6daa9c49ecee0a8e0048f278b6eb1ae22bdcf9b4523be7ba7106
MD5 0f4bd90b2ec242f2275bd4e6e7326395
BLAKE2b-256 085451f6f6a5eb9e328f7cabb2669240230101fc54c2f1d9242f63f1aacbb3cb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.11.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 c5b8860e3cc7df4f7f451e043aabe60a3812f99c3e308f0c4c0e7a03d72c1563
MD5 348e246df542c2739901ae47d22ecfd5
BLAKE2b-256 7af9641573bbc7b83e55e158e10e5ccdefa6d505e4c0d630d7618239b9696424

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.11.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7824202d23e3060c7a0380e1a9bb6f131f47ee29c6f30b322e844648ea3aa9da
MD5 97601ee9a70261555589581533160c24
BLAKE2b-256 8ebe153f0125ed96624c30bd150ce239f65618b48409defeaecc70eb4b06d105

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.11.0-cp311-cp311-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 016a68de76fc800554fcc7dc473e48092d749b3b4302a6babd2e592a5fe8ae5e
MD5 a0f152cd7a05092b8c4ffeef84054863
BLAKE2b-256 c7ce2a16dc886201744b85f6786660bf8b70282905daec95901217076657f8af

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.11.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6f46e00d4a10a7fb73b560e57689a68ca3661bf969e228093d20fc1313c42f0b
MD5 e8c497a08651a0e2fb9cde5018f12646
BLAKE2b-256 7f4c4c51965ef70265fc81f10e96e08d5738d465d4853b7d384828d466da4562

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.11.0-cp311-cp311-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 9fbb2a1a82e24f0f90a9bb4ca7af6174ce91c5f3b3ce58e0b16361e989ea7cc1
MD5 0193a16503e64116b051d4f9b580a9ff
BLAKE2b-256 364219c83402901979fbdb4b9f8f4da854f9ecc421fd6fb99318780868527a4d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.11.0-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 eedea42d13b3630faa5591e298659f34e6ead06aa867050def12de6cc03e1a97
MD5 d1db39de7fe4b0f9137d68d00311da53
BLAKE2b-256 6aafeca0e883c4c7d58d5717a0e8786312591d0a1716e37d1cc17a14ed0be507

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.11.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 6e9a74eaa673cf4c87302bd0845586a072dba7fc172a3960af64b1ad5cedf00f
MD5 287dc5000f17ea49635e4544fe854cbf
BLAKE2b-256 6378604afb7c9ed0316363d2b7e140b855ce6745729d362bb838da820a9500de

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.11.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 6bf07fef1a66b96126bc0f398e01c3860e59f01eb89b244cfdcc36e70b68edad
MD5 f3b81e38a04c81ae8e0193b231c5b66a
BLAKE2b-256 c83b011996d54fb796d7f2db82c39cb5a084b196850c8f902a4811d7706a63e6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.11.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 266736c1471ddfb59d03e6d78f93f55fd0ab2fe800b9929fc5256d9208efc4a2
MD5 573846c86dbcd6b6e7cf78ab33b75f29
BLAKE2b-256 6e59e5c5033acbc54b5db19ed25272f52082c2a646cef22858abbe51d0d23ab4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.11.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 72df1994a39018c4687a75c1750b7be3bfcd5c0c5e79e9ed73b552d4d5077588
MD5 48c4fd674979f52a7e3c63003da55f7c
BLAKE2b-256 1bd25136b1e9c52edf384e1ca7e53a4ada8a6ebf6d60d1b5b2eda8c852b089ea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.11.0-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 dd5a91fc0632896b524ad7b121146e991176252cd072bb06ea2596042232a04f
MD5 7786843dbec0bee4cd553995cc6ea659
BLAKE2b-256 7ec044dc665f8f648a814cff7bd68462c70b28a57ec5c262b56466dde9a0e15c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.11.0-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 16a6ce38566029433323f7c0dfc76732a47158eee3de4c1734f00ad36d953181
MD5 724ba50f8e892d165da9532f76ec256e
BLAKE2b-256 9da05a0a40df4759afb46d61aa9682dc4312911fa6090699758303603a0a7323

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.11.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 89fdfbdd8ec5d9fad75b7ee487de6b2394856235511b1950c3505e78afbc8170
MD5 04c3e8afbe2d8c9d01d71431e9b7f8f8
BLAKE2b-256 c2ae598095ce19f525229889aa1ac89490126c730e7eead1dceb26a7bbe59863

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.11.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 68f15ff78a6f44344599209bc0d1e5e5d608e81bd2c9b5f02824d08751cf07d9
MD5 4eac8e706201fa69c927e72ecfdd6f95
BLAKE2b-256 2e21724978e42768e5ad95746ae42657b63f2095429cec48e88ef6dbbcd4832e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.11.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 8b2819a6612b771ffab2d80f518cf602aeec7bacee9659c6f7af40596fbfe9f6
MD5 6504a36a714bf2652ae1e81c74f672e6
BLAKE2b-256 0112e17a06ebd403efa1c8512c54cd23ee3886c56c569b69f428cf026d781cae

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.11.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f83b34f92781f22ef6a7b7f4a67258deb516a06f86c713da33211a6db4fc9ea6
MD5 113d0bb47fb7c7a042badaf27852b879
BLAKE2b-256 8debc5f8eb5cc3c85755d99e2483fb7c97aec6876064ba649885fc5b05df015b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.11.0-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 a4f012204aaeb233c5414e776d04d468d7a542da259811b059a89a519032e2ec
MD5 bc809b118d027a1ae7a9dd715159ec1f
BLAKE2b-256 eaa828b28034d0707d361223a6d8b362dec358bed5d7dec6f8ffb6d93e2a9c3a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.11.0-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 9076942a66a03a7a3e668314cd00f720db31116df7e8626808150e4e22a079cd
MD5 032f4d7e0436e7fe78696974e11dbe75
BLAKE2b-256 4463dc312be4fb91285fc4e7d8e9cce3036eeaa6357374bc0894d0e4f7b7fdd5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.11.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7fb0ae51e06e90336573ed9454cc05541075756e633023550086f8f1882bd38b
MD5 b8e8efb270dbdc9721f7cee4d6d81622
BLAKE2b-256 7702517bd307435bf3b7a571a1dc0e920a9c82b54944dfc659b3692069cdf590

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.11.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 0ea78c073e8c5c408d4034f2da04031d0dfa8e1eface5512b350d81766aebb25
MD5 930f275bb07bb0fb18858c5397e6517d
BLAKE2b-256 336dbc85b76c79db078597e057a1022b9e5eadebb083840a2942d0cdd0100cb7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.11.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 ad1aeec47f1abb37ca6bd4a5a8be8c556e7456fe2e4a5c79b7bc32eaac916b24
MD5 b8b8dfcf7a30423698728e7688b59292
BLAKE2b-256 221408529ca487378e4bbb3884a51b2c4cbd9bd40400ff189795af6141b43727

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.11.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fc9372c1f0161b245a235b12ff3d5dc1a05216ad3fde158e62d1143b7f3b99cc
MD5 99ea3542c6bd384b79caa905ce97a58e
BLAKE2b-256 5228fbeb4babeb1113e4a7c6e92f7de34716346e3a3d372e468e2ecb8863c1c3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.11.0-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 50889d09343993513113b21ad86a7d56e128abdb9a526c4fd394df7a3a7bda78
MD5 05a5695df6e1c9b6058427e1b6133b86
BLAKE2b-256 93d1a8f5e8cc479290d58ade9f70d4403fbc43f414cd454d5f9c73c76c7a2efd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.11.0-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 1dbb599c66ffaf1467c4f96aabbecbf30b58963366f17e07bea869c95bec7f72
MD5 376ea5b2542b69b17f0d113f9f9a0fd4
BLAKE2b-256 470dee07203464be91b72a48f411cbb4a79042e1ff749ee501c30c2f91ad4ef0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.11.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 24894d1f5c63cdaba137199ad989d8882485ecb4190d1ff7dc5214ac84484a06
MD5 4cc624c6142c75c775e1e4e8cf1ccc42
BLAKE2b-256 9af4ed1e70705127b4adad10f60a71f83ef9ba0c4867e5c0d1e82828361126ae

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.11.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 0a5b31192d8a8d44d12320873f231c22e6ea5aed079b880cf21556ab34b3f526
MD5 149414822db528fe670bf81bc8eab337
BLAKE2b-256 ff189c1d157580103b92666626d71f3b4c072e5746fe172d75aaa0ade8fdb322

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for memray-1.11.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 db4ebee46c24212a357641fe9fb893c842bfc66bee25546ff2efe9350e850138
MD5 9f66a202e0da63012e4f1bfbfde2c3a1
BLAKE2b-256 d9b0187a81ca5cc6834af0bc743bb073015b4d38749e96958947f8d7a357e2c6

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