Latency Numbers Every Programmer Should Know


This is coming from GitHub:

L1 cache reference                            0.5 ns
Branch mispredict                             5   ns
L2 cache reference                            7   ns             14x L1 cache
Mutex lock/unlock                            25   ns
Main memory reference                       100   ns             20x L2 cache, 200x L1 cache
Compress 1K bytes with Zippy              3,000   ns
Send 1K bytes over 1 Gbps network        10,000   ns    0.01 ms
SSD random read                         150,000   ns
Read 1 MB sequentially from memory      250,000   ns    0.25 ms
Round trip within same datacenter       500,000   ns    0.5  ms
Read 1 MB sequentially from SSD       1,000,000   ns    1    ms  4X memory
Disk seek                            10,000,000   ns   10    ms  20x datacenter roundtrip
Read 1 MB sequentially from disk     20,000,000   ns   20    ms  80x memory, 20X SSD
Send packet CA->Netherlands->CA     150,000,000   ns  150    ms

1 ns = 10-9 seconds
1 ms = 10-3 seconds
Assuming ~1GB/sec SSD

By Jeff Dean (http://research.google.com/people/jeff/)
Originally by Peter Norvig (http://norvig.com/21-days.html#answers)
Some updates from: https://gist.github.com/2843375
Great ‘humanized’ comparison version: https://gist.github.com/2843375

Leave a Reply

Your email address will not be published. Required fields are marked *