2010YOUY01/memcurve

2026-06-02

Language: Python

Link: https://github.com/2010YOUY01/memcurve

memcurve is a small but genuinely useful Python utility that solves a problem most developers have hit at least once: figuring out how much memory a CLI command actually consumes over its lifetime. Rather than just spitting out a peak RSS number like /usr/bin/time -v does, memcurve samples memory usage continuously and produces a visualization — a curve — showing how memory grows, plateaus, spikes, and (hopefully) gets released.

This is the kind of tool you didn't know you needed until you're staring at a job that mysteriously OOMs halfway through, or trying to compare two implementations of the same task and a single peak number isn't telling the full story. Some questions it can answer at a glance:

Plotting commands side-by-side is where it really shines — diffing memory shapes rather than scalar peaks gives you intuition that no single metric can. It's the memory equivalent of hyperfine for timing comparisons, which is great company to be in.

Who would benefit: Anyone optimizing data pipelines, ETL scripts, ML training jobs, compilers, or build tools. Database and query-engine developers (which, judging by the author's other work, is likely the audience they had in mind) will find it especially handy for comparing query plans or buffer-pool strategies. Also a nice teaching tool for showing students what garbage collection or streaming-vs-batch processing actually looks like in memory.

It's lightweight, has a clear single purpose, and fills a real gap in the standard Unix toolbox.

Why check it out: A focused little tool that turns abstract memory numbers into visual curves, perfect for diagnosing leaks and comparing CLI tool implementations side-by-side.

All newsletters