### Latency numbers every programmer should know L1 cache reference ......................... 0.5 ns Branch mispredict ............................ 5 ns on recent CPU 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 = 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 4X memory Round trip within same datacenter ...... 500,000 ns = 0.5 ms 20x datacenter roundtrip Read 1 MB sequentially from SSD* ..... 1,000,000 ns = 1 ms 80x memory, 20X SSD 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 LTO4 tape seek/access time ...... 55.000.000.000 ns = 55 s Assuming ~1GB/sec SSD ![Visual representation of latencies](http://i.imgur.com/k0t1e.png) Evolution over Years [Berkeley](http://www.eecs.berkeley.edu/~rcs/research/interactive_latency.html) Pings around the world [WonderNetwork](https://wondernetwork.com/pings) PC Hardware Speeds [Gustavo Duartes](http://duartes.org/gustavo/blog/post/what-your-computer-does-while-you-wait) Visual chart provided by [ayshen](https://gist.github.com/ayshen) Data by [Jeff Dean](http://research.google.com/people/jeff/) Originally by [Peter Norvig](http://norvig.com/21-days.html#answers)