Polars for initial data analysis, Polars for production

Speeding up text processing in Python (is hard)

Python’s Multiprocessing Performance Problem

Don’t bother trying to estimate Pandas memory usage

float64 to float32: Saving memory without losing precision

Why Polars uses less memory than Pandas

Some reasons to avoid Cython

It’s time to stop using Python 3.7

Good old-fashioned code optimization never goes out of style

Who controls parallelism? A disagreement that leads to slower code

Early speed optimizations aren’t premature

Faster hardware is a bad first solution to slow software

Find slow data processing tasks (before your customers do)

Finding performance problems: profiling or logging?

Invasive procedures: Python affordances for performance measurement

The best way to find performance bottlenecks: observing production

Finding performance bottlenecks in Celery tasks

The limits of Python vectorization as a performance technique

Why new Macs break your Docker build, and how to fix it

Pandas vectorization: faster code, slower code, bloated memory

Making pip installs a little less slow

CPUs, cloud VMs, and noisy neighbors: the limits of parallelism

Faster, more memory-efficient Python JSON parsing with msgspec

When Python can’t thread: a deep-dive into the GIL’s impact

Speeding up software with faster hardware: tradeoffs and alternatives

Please stop writing shell scripts

Processing large JSON files in Python without running out of memory

Faster Python calculations with Numba: 2 lines of code, 13× speed-up

The fastest way to read a CSV in Pandas

How vectorization speeds up your Python code

More →