Volante : Volante Developer's Guide : Numbers every programmer should know
Jeffrey Dean, one of the architects of some key Google services, gave a talk Building Software Systems at Google and Lessons Learned at Stanford. One of his slides had the following list of numbers:
| 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 w/ cheap algorithm | 3,000 ns |
| Send 2K bytes over 1 Gbps network | 20,000 ns |
| Read 1 MB sequentially from memory | 250,000 ns |
| Round trip within same datacenter | 500,000 ns |
| Disk seek | 10,000,000 ns |
| Read 1 MB sequentially from disk | 20,000,000 ns |
| Send packet CA->Netherlands->CA | 150,000,000 ns |
Knowing those numbers helps understand e.g. why bigger cache usually increases performance of databases (including Volante).