Skip to content

Instantly share code, notes, and snippets.

@mikea
Forked from hellerbarde/latency.markdown
Created May 31, 2012 15:27
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mikea/2844153 to your computer and use it in GitHub Desktop.
Save mikea/2844153 to your computer and use it in GitHub Desktop.
Latency numbers every programmer should know
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
Read 1 MB sequentially from memory 250,000 ns 250 µs
Round trip within same datacenter 500,000 ns 0.5 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
By Jeff Dean (http://research.google.com/people/jeff/):

Lets multiply all these durations by a billion:

Magnitudes:

Minute:

L1 cache reference                  0.5 s         One Heart Beat (0.5 s)
Branch mispredict                   5 s           Yawn
L2 cache reference                  7 s           Long Yawn
Mutex lock/unlock                   25 s          ?

Hour:

Main memory reference               100 s         Brushing your teeth
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        Flight duration from Hawaii to Utah

Week

Read 1 MB sequentially from memory  2.9 days      A long weekend.
Round trip within same datacenter   5.8 days      A medium vacation

Year

Disk seek                           16.5 weeks    ?
Read 1 MB sequentially from disk    7.8 months    ?

Decade

Send packet CA->Netherlands->CA     4.8 years     ?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment