2021-12-22
|~3 min read
|501 words
Credit: Hellerbarde forked jboner’s gist on latency and provided several useful graphics and scale to help put latency numbers in context in their own version.
| Operation | Latency | Conversion |
|---|---|---|
| L1 cache reference | 0.5 ns | |
| Branch mispredict | 5 ns | |
| L2 cache reference | 7 ns | |
| Mutex lock/unlock | 25 ns | |
| Main memory reference | 100 ns | |
| Compress 1K bytes with Zippy | 3,000 ns | = 3 µs |
| Send 2K bytes over 1 Gbps network | 20,000 ns | = 20 µs |
| SSD random read | 150,000 ns | = 150 µs |
| Read 1 MB sequentially from memory | 250,000 ns | = 250 µs |
| Round trip within same datacenter | 500,000 ns | = 0.5 ms |
| Read 1 MB sequentially from SSD* | 1,000,000 ns | = 1 ms |
| Disk seek | 10,000,000 ns | = 10 ms |
| Read 1 MB sequentially from disk | 20,000,000 ns | = 20 ms |
| Send packet CA->Netherlands->CA | 150,000,000 ns | = 150 ms |
* Assuming ~1GB/sec SSD
To make these scales more relatable, Hellerbarde multipled all of the times by 1 billion.
| ~ size | Operation | Latency | Human “size” (i.e., 1 billion times as long) |
|---|---|---|---|
| Minute | L1 cache reference | 0.5 s | One heart beat (0.5 s) |
| Minute | Branch mispredict | 5 s | Yawn |
| Minute | L2 cache reference | 7 s | Long yawn |
| Minute | Mutex lock/unlock | 25 s | Making a coffee |
| Hour | Main memory reference | 100 s | Brushing your teeth |
| Hour | Compress 1K bytes with Zippy | 50 min | One episode of a TV show (including ad breaks) |
| Day | Send 2K bytes over 1 Gbps network | 5.5 hr | From lunch to end of work day |
| Week | SSD random read | 1.7 days | A normal weekend |
| Week | Read 1 MB sequentially from memory | 2.9 days | A long weekend |
| Week | Round trip within same datacenter | 5.8 days | A medium vacation |
| Week | Read 1 MB sequentially from SSD | 11.6 days | Waiting for almost 2 weeks for a delivery |
| Year | Disk seek | 16.5 weeks | A semester in university |
| Year | Read 1 MB sequentially from disk | 7.8 months | Almost producing a new human being |
| Year | The above 2 together | 1 year | |
| Decade | Send packet CA -> Netherlands -> CA | 4.8 years | Average time it takes to complete a bachelor’s degree |
Hi there and thanks for reading! My name's Stephen. I live in Chicago with my wife, Kate, and dog, Finn. Want more? See about and get in touch!