L1 cache reference: 0.5 ns
Branch mispredict: 5 ns
L2 cache reference: 7 ns
Mutex lock/unlock: 100 ns
Main memory reference: 100 ns
Compress 1K bytes with Zippy: 10,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 network: 10,000,000 ns
Read 1 MB sequentially from disk: 30,000,000 ns
Send packet CA->Netherlands->CA: 150,000,000 ns
数量级关系:
读1MB网络数据=读1MB磁盘数据=100*读1MB内存数据;
读1MB内存数据=1000*读1KB内存数据;
读1KB内存数据=读1B内存数据;
读1B内存数据=10*读1次L2Cache=100*读1次L1Cache;
指令流水线if打断=5*读1次L1Cache
加锁=100*读1次L1Cache=1次访存
压缩1KB数据=网络传输1KB数据;