Rough numbers for what is fast and what is not

Back to list2024-03-01
You

Rough numbers for what is fast and what is not?

ChatGPT

The orders of magnitude, not the digits:

OperationTime
L1 cache reference1 ns
Main memory reference100 ns
SSD random read100 us
Round trip in a datacenter500 us
Round trip across an ocean150 ms

The useful consequence: one network call costs as much as a million memory accesses, so batching calls beats optimising the code between them.

You

We added a cache and p99 got worse.

ChatGPT

Classic signature of a cache that misses under load: every miss now pays the lookup plus the original work, and the population step often serialises on a lock. Measure hit rate before and after, and add jitter to expiry so entries do not all die in the same second.

You

Where do I start when a script is slow and I have no idea why?

ChatGPT

Profile before guessing. For Python:

python -m cProfile -s cumtime script.py 2>&1 | head -25

Read the cumulative column first, not the per-call one. Nine times out of ten the top entry is a function nobody suspected, and the one you were about to optimise is at 2%.

You

Any downside worth knowing before I commit?

ChatGPT

It commits you to a format that is tedious to migrate away from later. The first weeks also look worse than doing nothing, which is when most people abandon it.