Skip to main content

A simple heap analysis and visualization tool.

Project description

Midden

Midden is a tool for dumping and analysing heaps from Python programs.

It takes a "dump first, ask questions later" approach, making it easy to grab a heap dump from a running application, then analyse it offline later in its UI, potentially on a different machine entirely.

Installing

If you just want to grab a heap dump, you can install everything you need with:

pip install midden
# Or if you're using uv
uv add midden

If you want to analyse the data, you'll need the extra UI dependencies, which you can install with

pip install midden[ui]
# Or if you're using uv
uv add midden[ui]

Grabbing a Heap Dump

Grabbing a heap dump can be as simple as:

# Assuming pid we want to grab heap from is pid 12345
midden-inject 12345 --output-file /tmp/dump.jsonl

On Python 3.14 and newer, this will use sys.remote_exec, which means no extra dependencies. You will need appropriate permissions as documented here. Roughly speaking, you either need to be root/administrator, or be running on Linux with ptrace protection disabled.

On Python 3.10 to 3.13, injection is done with gdb, which means gdb needs to be installed. Gdb-based injection is only tested on Linux.

Analysing a Heap Dump

You can run the analysis UI with

midden-ui

This will start a web application, and pop up a web browser pointing at the analysis application. Upload a heap dump generated with midden-inject to get started.

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

midden-0.1.0.tar.gz (12.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

midden-0.1.0-py3-none-any.whl (16.7 kB view details)

Uploaded Python 3

File details

Details for the file midden-0.1.0.tar.gz.

File metadata

  • Download URL: midden-0.1.0.tar.gz
  • Upload date:
  • Size: 12.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.15 {"installer":{"name":"uv","version":"0.11.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for midden-0.1.0.tar.gz
Algorithm Hash digest
SHA256 10b20a9d741266df82c9009b1c9a8e68c590e9feeedfc45bb8cb404ebc571bf8
MD5 e68e337faed3a696555564042d94c335
BLAKE2b-256 1c227ef21a0d7d6b52609c11eacf08013c1d548cbca3b49e1cb04155137617d7

See more details on using hashes here.

File details

Details for the file midden-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: midden-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 16.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.15 {"installer":{"name":"uv","version":"0.11.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for midden-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 da5178865ac14d5dae4fe29cdaad4afd6f8d067d6d14efdda02dd8df30a9e958
MD5 3b8cd02af9cdccd5539c65c7767b1bf3
BLAKE2b-256 112dc544c952f25554383f5d84a46f2c3fb63894a979c9a567013873f0c380db

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page